首页 > 编程语言 > 详细

Spring常用注解与J2EE注解总结

时间:2020-11-09 17:52:46      阅读:52      评论:0      收藏:0      [点我收藏+]

Spring注解

1)@Component

作用:调用无参构造创建一个bean对象,并把对象存入spring的IOC容器,交由spring容器进行管理。相当于在xml中配置一个bean。

属性:value:id默认按照当前bean的类名,首字母小写,可以在使用时指定value名称。

2)@Repository

作用:与@Component注解相同,只是用于区别持久层。

3)@Service

作用:与@Component注解相同,只是用于区别业务逻辑层。

4)@controller

作用:与@Component注解相同,只是用于区别控制访问层。

5)@Bean

作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中,等价于spring的xml配置文件中的<bean>,不同的是作用与方法上。

属性:可以通过配置initMethod来指定bean的初始化方法,destroyMethod指定bean销毁时的方法,value指定bean被注册到IOC容器的id。

6)@Configuration

作用:配置spring容器(应用上下文),@Configuration底层是含有@Component ,所以@Configuration 具有和 @Component 的作用,相当于spring的xml里面的<beans>。

7)@ComponentScan

作用:@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,相当于xml中的 <context:component-scan>。

属性:可以通过value指定需要扫描的包的数组,比如:@ComponentScan({"com.star.mapper","com.star.controller","com.star.serviec"})

8)@Scope

作用:模式声明(singleton|prototype)默认为单例模式,指定bean的作用范围。

属性:可以通过value指定bean的范围。

9)@Autowired

作用:将从spring容器中按类型查找到指定的bean并且自动装配到指定位置。@Autowired默认按照类型(byType)装配,如果想要按照名称(byName)装配,需结合@Qualifier注解使用。

属性:可以通过required指定true|false,是否强制注入bean,默认true。

10)@Qualifier

作用:在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和 @Autowire一起使用;但是给方法参数注入时,可以独立使用。

属性:value:指定bean的id。

11)@Transactional

作用:为当前类或方法添加一个事务。

属性:可以通过readOnly属性指定true|false,是否是只读的事务。

12)@ContextConfiguration

作用:位于org.springframework.test.context包下,是为了方便junit单元测试使用,可以以指定的配置文件初始化spring上下文。

属性:locations指定一个配置文件数组:比如:@ContextConfiguration(locations = {"classpath:applicationContext.xml"})

13)@Value

作用:通过@Value可以将外部的值动态注入到Bean中,可以为基本类型数据和String类型数据的变量注入数据,可作用于方法的参数。

属性:value:必须指定具体值。

14)@Primary

作用:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常。

15)@Lazy

作用:用于指定该Bean是否取消预初始化,默认为true,用于注解类,延迟初始化。

属性:value:指定true|false,是否懒加载。

16)@Async

作用:用于方法的异步执行,被标注的方法将会开辟一个线程来执行,详情移步:这里

属性:value:可以为异步执行器指定一个id,也可以不指定。

J2EE注解

位于 javax.annotation包下的注解

1)@Resource

作用:JDK1.6以后,用于依赖注入,作用与@Autowired注解相似,spring同样支持通过此注解来注入对象,但要明确这个注解不属于spring,参靠博客

属性:name:指定bean的id,在注入依赖时,首先按照id查找bean,未找到再通过类型查找bean,未发现则报错。

2)@Generated

技术分享图片

作用:用来标注源代码中的哪些东西是由某些工具生成的,而不是人写的,可以作用于包、类、方法、字段、构造函数、本地变量、方法参数。

属性:date:生成源代码的日期;value:指定包名数组;comments:包含的注释。

3)@PostConstruct

作用:指定作用与方法所在的bean初始化(实例化之后)时的动作,spring同样支持了此注解,只能有一个方法可以用此注释进行注释,方法不能有参数,返回值必需是void,方法需要是非静态的且只会执行一次。

4)@PreDestroy

作用:注解的方法在bean销毁时得到执行,与上述约束相同。

springBean生命周期

技术分享图片

spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种:

1.通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;

2.通过 <bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;

3.在指定方法上加上@PostConstruct 或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用

但他们之前并不等价。即使3个方法都用上了,也有先后顺序.

Constructor > @PostConstruct >InitializingBean > init-method

参考博客:这里

Spring常用注解与J2EE注解总结

原文:https://www.cnblogs.com/StarChen20/p/13949578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!