SpringFramework版本变更新增的注解以及对配置的改变SpringFramework 版本变更
1.x实例化类和实例化对象
纯xml配置。java5发布后,在1.2.0版本的时候增加了@Transcational注解。
2.x
增加了新的注解:@Required @Repository @Aspect。
扩展了配置⽂件功能:可以使⽤⾃定义标签。
2.5版本有较⼤升级,新增以下注解:@Autowired @Qualifier@Component@Service @Controller @RequestMapping等
可以使⽤xml+context:component-sacn+@Component+@Controller+@Service+@Repository。
3.x
增加注解:@Configuration 配置⽂件类注解等价于l⽂件;@Bean 等价于。3.0版本的时候
context:component-scan还没有对应的注解,所以还是需要通过xml配置,有个过渡的注解
@ImportResource(“l”)可以在配置类⾥获取xml配置⽂件⾥的类容。
3·1版本增加:@ComponentScan 默认扫描当前包及其⼦包下所有的被@Component @Controller @Service @Repository注解所标识的类并加载到容器中。
@Enable*可以实现对第三⽅模块的整合 可以不依赖配置⽂件,在java配置类中实现。
@Import
使⽤⽅式⼀(静态引⼊):@Import(User.class)将需要引⼊到IOC容器中的类显式的添加进去。
使⽤⽅式⼆(动态引⼊):@Import(ImportSelector.class)传⼊的类实现ImportSelector接⼝,并重写selectImports⽅法,此⽅法可以根据⾃⼰的业务逻辑返回IOC容器需要加载的类型的全类路径名称。
使⽤⽅式三(动态引⼊):@Import(ImportBeanDefinitionRegistar.class)传⼊的类实现ImportBeanDefinitionRegistrar接⼝,并重写registerBendefinitions⽅法,此⽅法参数⾥有BeanDefinitionRegistry注册器。先将需要添加的类型封装为RootBeanDefinition类型,然后注册到注册器中。可以⾃主的添加想要的对象注册到容器中。
在实例化类的时候会通过反射去判断传⼊的类是否实现了第⼆、三两个接⼝,如果没有就直接实例化该类, 如果有就去相应的⽅法中类型。
4.x
注解完善的时代
@Conditional(Conditon.class)传⼊的类实现Condition接⼝并重写matches⽅法,此⽅法可以根据实际业务返回boolean类型。以此来决定IOC容器是否加载使⽤了此注解的类的对象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论