Spring中常用注解整理
Spring注解编程的发展过程
注解详解
@Transaction
在Spring1.2版本的时候提供了 (org.springframework.transaction.annotation )注解。简化了事务的操作.
@Required
@Required注解诞生于spring2.0,如果你在某个java类的某个set方法上使用了该注释,那么该set方法对应的属性在xml配置文件中必须被设置,否则就会报错!!!
public class UserServiceIMpl implements UserService {
private UserService userService;
public UserService getUserService() {
return userService;
}
@Required
public void setUserService(UserService userService) {
this.userService = userService;
}
}
如果在xml文件中我们不设置对应的属性就会给出错误的提示。
@Import注解
@Import注解出自Spring3.0版本,此时spring3.0还属于注解方式开发的过渡期,当然类似于@Bean、@Configuration注解也是在spring3.0版本诞生的。@Import注解于<import>标签的作用是相同的,在spring配置文件中,导入另一个配置文件。
@Import注解作用
@import注解相对于标签import还增加了bean对象的注入功能,下面是三种初始化对象的方式方式:
1. @Import(UserService.class)
这种方式最为简单,作用是将UserService类进行初始化,并注册到IOC容器中
2. 实现ImportSelector接口
public class MyImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{Logger.class.getName(), Cache.class.getName()};
}
这种方式是重写父类接口,作用是返回需要注册的Bean对象的全类名
3. 实现ImportBeanDefinitionRegistrar接口,这种方式可以重写父类接口方法,直接使用BeanDefinitionRegistry,将我们的Bean对象注入到IOC容器中
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Logger.class);
registry.registerBeanDefinition("logger666", rootBeanDefinition);
RootBeanDefinition cache = new RootBeanDefinition(Cache.class);
registry.registerBeanDefinition("cache666", cache);
}
}
}
推荐阅读
更好的创建和使用Mysql索引
我们只为出现在where子句中的列、连接子句中的连接列,或者出现在ORDER BY或者GROUP BY子句中的列创建索引。仅出现在查询列表中的列就没必要建立索引。比如这样一个查询语句:
Zeran阅读 134
Java项目是不是分布式,真有那么重要吗?
「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。
Java3y赞 2阅读 567评论 1
Spring Boot自动装配原理(易懂)
Spring Boot的自动装配实际上是从META-INF/spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给Spring容器进行管理
Dream_sky赞 2阅读 329
Spring Framework IOC 原理
Spring Framework 提供了除IOC之外的很多有意思的功能,深入研究其技术原理,可在项目技术选型上提供更多的思路和技术把控。Spring Framewrok 代码由大佬精心打磨,可以从功能实现上学习和模仿。另外Spring Frame...
Mario赞 1阅读 689
线上FullGC问题排查实践——手把手教你排查线上问题 | 京东云技术团队
观察该机器日志发现,此时有很多线程在执行跑批任务。正常来说,跑批任务是低CPU高内存型,所以此时考虑是FullGC引起的大量CPU占用(之前有类似情况,告知用户后重启应用后解决问题)。
京东云开发者赞 2阅读 319
手写模拟Spring底层原理-Bean的创建与获取
大家好,相信大家对Spring的底层原理都有一定的了解,这里我们会针对Spring底层原理,在海量的Spring源代码中进行抽丝剥茧手动实现一个Spring简易版本,来促进我们对Spring架构有个更深的理解,对Spring的常用功...
京东云开发者赞 1阅读 608
SpringBoot可以同时处理多少请求?
我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,倒不如说Tomcat可以处理多少请求。
码猿技术专栏赞 1阅读 587
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。