目录
用于创建对象
1.Component
2.Controller
3.Service
4.Repository
用于注入数据
1.Autowired
2.Qulifier
3.Resource
4.Value
用于改变作用范围
1.Scope
和生命周期相关
1.PreDestroy
2.PostConstruct
配置类
1.Configuration
2.ComponentScan
3.Bean
4.PropertySource
5.EnableTransactionManagement
6.EnableAspectJAutoProxy
7.Transaction
8.Aspect
整合Junit
1.RunWith(SpringRunner.class)
2.ContextConfiguration
用于创建对象
1.Component
作用:用于把当前类对象存入spring容器中
属性:
value:用于指定bean的id 当我们不写时 它默认是当前类名 首字母改小写
2.Controller
用于表现层
3.Service
用于业务层
4.Repository
用于持久层
用于注入数据
1.Autowired
作用:
自动按照类型注入 只要容器中有唯一一个bean对象类型和要注入的变量类型匹配 就
可以注入成功
如果ioc容器中没有任何bean的类型和要注入的变量类型匹配 则报错
如果ioc容器中有多个bean类型 则按照变量名注入
出现位置:
可以是变量上 也可以是方法上
细节:
在使用注解注入时 set方法就不是必须的
2.Qulifier
作用:
在按照类中注入的基础之上再按照名称注入 它在给类成员注入时不能单独使用 但是
在给方法参数注入时可以
属性:
value:用于指定注入bean的id
3.Resource
作用:
直接按照bean的id注入 它可以单独使用
属性:
name用于指定bean的id
4.Value
作用:
用于注入基本类型和String类型的数据
属性:
value:用于指定数据的值 它可以使用spring中SpEl(也就是spring的el表达式)
SpEl的写法:${表达式}
用于改变作用范围
1.Scope
作用:
用于指定bean的作用范围
属性:
value指定范围的取值 常用取值 singleton prototype
和生命周期相关
1.PreDestroy
作用:
用于指定销毁方法
2.PostConstruct
作用:
用于指定初始化方法
配置类
1.Configuration
作用:
指定当前类是一个配置类
2.ComponentScan
作用:
用于通过注解指定spring在创建容器时要扫描的包
属性:
value:它和basePackages的作用时一样的 都是用于创建容器时要扫描的包
细节:
当配置类作为AnnotationConfigApplicationContext对象的参数时 该注解可以不写
3.Bean
作用:
用于导入其他的配置类
属性:
用于指定其他配置类的字节码
当我们使用Import的注解之后 有Import注解的类型就是父配置类 而导入的都是子配置类
4.PropertySource
作用:
用于加载.properties文件中的配置 属性:
value[]:用于指定properties文件位置 如果是在类路径下 需要写上classpath
细节:
必须是从spring容器获取的才能注入 new的对象跟spring没有任何关系
5.EnableTransactionManagement
作用:
配置类开启事务支持
6.EnableAspectJAutoProxy
作用:
配置类开启切面
7.Transaction
作用:
控制事务提交/回滚 作用于类上
8.Aspect
作用:
声明这个类是一个切面类
整合Junit
1.RunWith(SpringRunner.class)
使用Junit提供的一个注解把原有的main方法替换了 替换成spring提供的@Runwith
2.ContextConfiguration
locations:指定xml文件的位置 加上classpath关键字 表示在类路径下
Classes:指定注解类所在地位置
当我们使用spring 5.x版本的时候 要求junit的jar必须4.12及以上