@Component注解配置管理的资源
将资源让Spring来管理 注解要打在类上
@Component :把当前对象存入到Spring容器中 id 默认类名首字母小写 value指定名字
Controller:表现层
Service:业务层
Repository:持久层
以上三个注解他们的作用和属性与Component 一模一样
注入数据
- Autowired
作用:自动按照类型注入 只要容器中有唯一的一个【bean对象类型和要注入的变量类型匹配】 就可以注入成功
IOC容器中没有任何bean的类型和要注入的变量类型匹配则报错
如果IOC容器中有多个类型匹配时:根据调用**成员变量名称(作为bean的id)**去查找bean |查找bean数组 匹配
private AccountDao accountDao;
访问修饰符 变量类型 变量名称
出现位置
可以是变量上 也可以是方法上
Qualifier:
作用:按照类型注入的基础上在按照名称注入 给类成员变量不能单独使用 当在方法参数可以
value:指定名称
Resource
作用:直接按照bean的id注入 独立使用
name:指定id
以上三个注入都只能注入其他bean类型的数据 基本类型和String类型无法使用
集合类型要使用XML注入
Value:
作用:用于注入基本类型和String类型数据
属性:
value:用于指定数据的值 可以使用(SPEL)(Spring中的表达式)
SpEL写法:${表达式}
生命周期
了解:
PreDestroy
作用:用于指定销毁方法
PostConstruct
作用:用于指定初始化方法
配置类注解
Configuration
作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解 可以不写。
ComponentScan
作用:用于通过注解指定spring在创建容器时要扫描的包
属性:
value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。
我们使用此注解就等同于在xml中配置了:
<context:component-scan base-package="com.itheima"></context:component-scan>
Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:
name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:
当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。
查找的方式和Autowired注解的作用是一样的
Import
作用:用于导入其他的配置类
属性:
value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类
PropertySource
作用:用于指定properties文件的位置
属性:
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
整合junit
spring 和 spring-test jar 包版本一致
使用@RunWith注解替换原有运行器
@ContextConfiguration指定spring配置文件的位置
@ContextConfiguration注解:
locations属性:用于指定配置文件的位置。如果是类路径下,需要用classpath:表明
classes属性:用于指定注解的类。当不使用xml配置时,需要用此属性指定注解类的位置。