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的SpringWebApplicationContext
环境。