spring 注入方式

spring 注入方式
三种注入方式: 构造方法、基于注解、setter
两种: xml配置申明注册(构造方法、setter)、注解申明注册(基于注解)

前提:
bean一个属性autowire(自动装配),autowire 的三个属性值: constructor byName byType
constructor: 通过构造方法进行自动注入,spring 匹配与构造方法参数一致的 bean 注入
byName: 匹配与 set 方法后半截名称相同的 bean 进行注入
byType: 查找所有 set 方法,找到符合参数类型的 bean 将其注入

构造方法注入:

public class Test {
    
    private UserTest userTest;
    
    //构造方法注入
    public Test(UserTest userTest) {
        this.userTest = userTest;
    }
    
}

基于注解注入:
主要有四种:
@Component: 可用于注册所有 bean
@Repository: 主要用于注册 dao 层 bean
@Service: 主要用户注册逻辑层 bean
@Controller: 主要用于注册控制层 bean

描述依赖关系的主要有两种:
@Resource: java 中的注解,默认以 byName 方式去注入,如果找不到再以 byType 的方式去找,如果 byType 找到多个,则以 @Qualifier(spring 中的注解)指定的 bean 去注入
@Wutowired: spring 的注解,默认以 byType 的方式注入,再以 byName 的方式注入。如果 byType 找到多个,则调用 DefaultListableBeanFactory 中的 determineAutowireCandidate 方法来决定注入那一个。
determineAutowireCandidate:

  • 先找 bean 上的 @Primary 注解,如果有,则返回 bean 的 name
  • 再找 bean 上的 @Order、@PriorityOrder 注解,如果有则返回 bean 的 name
  • 最后直接以名称匹配,返回 bean 的 name

setter 注入:
在 xml 文件中配置

<bean id = "userService" class = "org.huangzi.main.service.UserService">
    <property name = "userDao" ref = "userMapper">
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值