Spring 框架详解(2)

依赖注入

控制反转,我们可以把它看作是一个概念。而依赖注入(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 控制器, 表现层, Action
3. @Repository DAO层,
4. @Service Service层
例子:
@Controller
    public class TestAction{
}

二. 可以标记属性/构造方法/setter方法
为对应的属性自动赋值
5. @Autowired 自动装箱, 根据所标记的属性类型自动赋值
6. @Qualifier 指定该属性具体赋值为哪个实现类对象, 指定id
7. @Resource 5.6功能的集成

三.
8. @Required 给某个属性的setter方法加标记
该setter方法所对应的属性必须去xml的配置文件中为其赋值
否则会抛出异常
(注意:使用注解的方式赋值没有效果)

四. 标记类中的某个方法, 就相当于xml配置文件中的:
init-method和destroy-method
9. @PostConstruct
10. @PreDestroy

五. 相当于xml配置中的scope属性,
用来控制对象的加载方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值