Spring中常用注解的用法
作者:我也曾把你举过头顶
Spring的常用注解
使用注解前唯一需要注解的就是,开启注解扫描
<context:component-scan base-package="com.guo"></context:component-scan> <context:annotation-config/>
1. @Comment
作用: 把资源让spring来管理,相当于在xml中配置一个bean。
属性: 指定bean的id。
如果不指定value属性,默认bean就是id当前的类名,首字母小写。(一般就是默认的)
2. @Controller、@Service、@Repository
他们三个注解都是针对一个的衍生注解,他们的作用及属性都是一模一样的。他们只不过是提供了更加明确的语义化。
- @Controller: 一般用于控制层的注解
- @Service: 一般用于服务层的注解
- @Repository: 一般用于dao数据交互层的注解
如果注解中有且只有一个属性要赋值时,且名称是 value , value 在赋值是可以不写。
3. @Autowired
作用: 自动按照类型注入,当使用注解注入属性时,set方法可以省略。
它只能注入其他bean类型,当有多个类型匹配时,使用时要注入的对象变量名称作bean的id,在spring容器中查找,找到了就注入成功。找不到就注入失败。
4. @Configuration
作用: 用于指定当前类时一个 spring配置类
当创建容器时会从该类上加载注解。
获取容器时需要使用 AnnotationApplicationContext( 有 @Configuration 注解的类 .class) 。
属性: value:用于指定配置类的字节码。
5. @ComponentScan
作用: 用于指定Spring容器在初始化容器时需要扫描的包。
作用在和spring的xml配置文件中是一样的
< context:component-scan base-package =" com.itheima " />
属性: basePackages :用于指定要扫描的包。
和该注解中的 value 属性作用一样。
/** * spring 的配置类,相当于 bean.xml 文件 */ @Configuration @ComponentScan("com.xxxx") Public class SpringConfiguration{ }
6. @Bean
作用: 该注解只能写在方法上,表示使用此方法创建一个对象,并放入Spring容器中。
属性: name:给当前 @Bean 注解方法创建的对象指定一个名称 ( 即 bean 的 id )。
7. @PropertySource
作用: 用于加载 .properties 文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。
属性: value[] :用于指定 properties 文件位置。如果是在类路径下,需要写上 classpath:
8. @Import
作用: 在一个配置类中导入其他配置类的内容
9. 切面AOP的相关注解
Spring是支持面向切面编程。
- @Aspect 声明一个切面
- @After 在方法执行之后执行(方法上)
- @Before 在方法执行之前执行(方法上)
- @Around 在方法执行之前与之后执行(方法上)
- @PointCut 声明切点
10. Bean的属性支持
@Bean的设置(作用域) 设置Spring容器如何新建Bean实例
Singleton 单例Bean,在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的默认值。
Protetype 原型Bean,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。
Request 请求Bean,每次HTTP请求都会创建一个新的Bean,该作用域仅适用于web的Spring WebApplicationContext环境。
Session 会话Bean,同一个HTTP Session共享一个Bean,不同Session使用不同的Bean。该作用域仅适用于web的Spring WebApplicationContext环境。
GlobalSession 全局会话Bean,限定一个Bean的作用域为ServletContext的生命周期。该作用域仅适用于web的Spring WebApplicationContext环境。
到此这篇关于Spring中常用注解的用法的文章就介绍到这了,更多相关Spring常用注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!