Spring 框架详解(2)

来源:互联网 发布:风靡网络的恐怖推理图 编辑:程序博客网 时间:2024/06/06 01:45

依赖注入

控制反转,我们可以把它看作是一个概念。而依赖注入(Dependency Injection)是控制 反转的一种实现方法.James Shore给出了依赖注入的定义:依赖注入就是将实例变量传入到一个对象中去。

xml形式

使用构造器注入
 <bean id="person" class="com.lanou.domain.Person"> <!--根据参数名称注入--><constructor-arg name="name" value="小明"/> <!--根据索引 index 注入--><constructor-arg index="1" value="24"/> <!--根据构造器的参数的类型,如果类型相同,则按照声明顺序依次排列--><constructor-arg type="java.lang.String" value="men"/></bean>

使用属性 setter 方法

 public class Person {    private String name;    private int age;    private String gender;    private Car car;    private List list;    private Set set;    private Map map;    private Properties properties;    private Object[ ] objects;    }

简单bean的注入

 <bean name="person" class="com.lanou.domain.Person">  <!-- propertybean 就是一个bean的属性name 用来描述属性的名称value就是属性值,(基本类型和String) --><property name="name" value="   "/> <property name="age" value="22"/> <property name="gender" value="men"/></bean>

引用其他的Bean

<bean name="car" class="com.lanou.domain.Car"/><bean name="person" class="com.lanou.domain.Person"><!--spring 容器内部创建 car 对象给 Person 的 car 属性赋值-->    <property name="car" ref="car"/></bean>

注解 Annotation

注解的注入会在XML之前,因此后者配置将会覆盖前者.
一. 用来标记组件.作用:用来标记组件属于哪个类型;确定从Spring容器中取出时的id.当不填入id时, id默认为当前类的名字, 其中首字母改为小写规律: 该类的注解当使用的时候, 那么所标记的类就会在Spring容器中自动创建对象.1. @Component 组件, 当某个类不明确属于某个组件时使用2. @Controller 控制器, 表现层, Action3. @Repository DAO层,4. @Service Service层例子:@Controller    public class TestAction{}二. 可以标记属性/构造方法/setter方法为对应的属性自动赋值5. @Autowired 自动装箱, 根据所标记的属性类型自动赋值6. @Qualifier 指定该属性具体赋值为哪个实现类对象, 指定id7. @Resource 5.6功能的集成三.8. @Required 给某个属性的setter方法加标记该setter方法所对应的属性必须去xml的配置文件中为其赋值否则会抛出异常(注意:使用注解的方式赋值没有效果)四. 标记类中的某个方法, 就相当于xml配置文件中的:init-method和destroy-method9. @PostConstruct10. @PreDestroy五. 相当于xml配置中的scope属性,用来控制对象的加载方式