重识Spring框架(3)

Spring2.5 IoC注解加xml

  1. xml配置扫描包路径:context:componet-scan base-packege="com.qiyang."
  2. 注解包括:@Controller @Service @Componet @Repository
  3. XML可设置排除注解扫描,也可以设置排除某些包,还可以按类的完整限定名排除、切面表达式、正则表达式、自定实现等等
  4. bean的名字:自动将类名首字母小写
  5. 依赖注入属性的值:@Value("admin") , 支持${jdbc.uri}获取外部资源属性 #{role.name} spEL表达式
  6. 自动注入:@Autowired 默认根据类型去匹配,匹配两个时,根据再根据名字去匹配,两个都匹配不上则报错
  7. 自定义bean名称:@Service("userXxxService")
  8. 设置注入的名称:@Qualifier("userServiceImpl")
  9. 设置自动注入的bean为主要的bean:@Primary
  10. 使用泛型作为注入的bean:应用场景(公共增删改查),public interface BaseService<T>
  11. @Autowired 可以加在方法的参数上,原理和使用与加在普通属性一致
  12. @Resource也可以注入bean,来自jdk,相比@Autowired区别,其是优先根据名称匹配,再根据类型匹配
  13. @DependsOn("user") 让user先于Role加载,有些情况下可以改变bean的加载顺序
  14. @Lazy 让bean懒加载,使用的时候才会被加载
  15. @Scope("") 默认单例 需要时可以将其设置为prototype
  16. 生命周期回调:@PostConstruct 初始化回调 @PreDestory 销毁回调

JavaConfig注入Bean

  1. Springboot完全采用JavaConfig方式,在Spring3~4以后逐渐成为核心类
  2. 注解@Configuration相当于一个xml配置,并且已有<beans>
  3. 扫描包:@ComponentScan 配置扫描包路径
  4. 加载Spring上下文:new AnnotationConfigApplicationContext(IoCJavaConfig.class)
  5. 配置第三方bean:@Bean注解,方法级别注解,可以在@Configuration 或 @Conponent 注解的类下使用
public DruidDataSource dataSource(){
    DruidDataSource ds = new DruidDataSource()
    ds.setName("x")
    // xxxx
    return ds;
}

注意:

@Bean 是自己将bean实例化好了以后,交给IOC容器注册成一个bean,其方式可以覆盖,通过@Component注册的bean,自动将返回值作为Bean的类型,方法名作为bean的name,可以name属性设置bean的别名,可以干预类的实例化过程。相比xml,替代了通过bean工厂配置初始化bean的形式

  1. 通过@PropertySource("classpath:jdbc.properties")可以获取外部资源文件属性,可指定多个
  2. 通过@Import (XxxxJavaConfig.class) 导入其他JavaConfig类,支持多个
  3. 主JavaConfig中默认即可在方法参数中使用外部bean,内部 bean依赖直接调用方法即可
  4. 扩展用法1:@Import 还可以将类注册为bean
  5. 扩展用法2:实现ImportSelector接口,重写selectImports方法,返回一个字符串数组,字符串写类的完全限定名,也可以将类注册成bean,注意要将此实现类加@Component即可,还有就是获取时,只能通过类型获取,不能通过名字获取
  6. 扩展用法3:实现ImportBeanDefinitionRegistrar,重写registerBeanDefinitions方法,通过registry bean定义参数注入bean,可以对bean起名字

好了,本期内容就是这么多,希望能够帮助到您,感谢您能读到最后,如果觉得内容不错,请您点赞转发给予鼓励,咱们下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值