1. @Component
使用@Component定义bean
写了“bookDao” 相当于就是按照ID去查找,不写就需要按类别查找
核心配置文件中通过组件扫描加载bean
2. @Component衍生注解
·@Controller:
用于表现层bean定义
·@Service:
用于业务层bean定义
·@Repository:
用于数据层bean定义
3. 纯注解开发
因为已经用组件扫描的方式代替bean的定义了,原来的applicationContext.xml就只剩组件扫描的语句了,所以Spring考虑使用纯注解开发模式,使用Java类代替配置文件。
配置文件:
·@Configuration:
用于设定当前类为配置类。(代替配置文件中 除了扫描,其他的代码部分 的功能。)
·@ComponentScan:
用于设定扫描路径。此注解只能添加一次,多个数据就要用数组格式。
(代替扫描的语句,扫描中的参数 也就是ComponentScan 的参数。
Java配置类:
主程序在 获取IoC容器时也要做些修改:读取Java配置类初始化容器对象
4. 依赖注入
本来像之前在xml配置文件中写bean时,虽然麻烦但是可以进行依赖注入。那Spring怎么做的呢?
Sping使用@Autowired注解开启自动装配模式(按类型),无需提供setter方法。
·@Autowired:(引用数值类型)
·@Value:(简单数值类型)
此时有个问题了,为什么不直接写在下方的变量进行赋值,二者看着不是一样的吗?
因为,写在注解里面,可以通过配置文件properties去赋值。
5. 加载properties文件
使用@PropertySource 注解 加载properties文件,路径仅支持单一文件配置,多文件的话用数组格式配置,不允许使用通配符*:
·@PropertySource:
jdbc.properties:
简单数值类型,读取properties文件中的name值:
6. 注解开发管理第三方bean
·@Bean:
主程序:
但是不能把这些都写在Spring的配置类中,所以要单独把这个配置拉出来:
·@import:
使用import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据用数组格式。
JdbcConfig.java:
Spring配置类:
7. 注解开发为第三方bean注入资源
简单数值类型:
引用数值类型:(自动装配)
·引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象。