一、Spring的Java配置方式
说明:Java配置方式就是使用Java类来替代Spring原先的xml文件
实现方式
主要依赖于@Confuration和@Bean注解实现
@Confuration:使用在类上,说明该类是一个配置类相当于一个xml文件
@Bean:使用在方法上,作用是返回对象将对象保存在IOC容器中相当于XML文件中的bean标签
常用的注解:
- @Configuration:声明一个类作为配置类,代替xml文件
- @Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签
- @Value:属性注入
- @PropertySource:指定外部属性文件,
二、SpringBoot的属性注入(全局可用)
约定大于配置
实现方式:
1.SpringBoot默认读取的文件名必须是:application.properties或application.yml
2.在类上通过@ConfigurationProperties注解声明当前类为属性读取类
3.通过@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象
4.然后你可以通过以下方式注入JdbcProperties:
@Autowired注入
@Autowired
private JdbcProperties prop;
构造函数注入
private JdbcProperties prop;
public JdbcConfig(Jdbcproperties prop){
this.prop = prop;
}
声明有@Bean的方法参数注入
@Bean
public Datasource dataSource(JdbcProperties prop){
// ...
}
常用的注解:
@ConfigurationProperties
@EnableConfigurationProperties(JdbcProperties.class)
三、SpringBoot的属性注入(局部使用)
事实上,如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(JdbcProperties)中。而是直接在需要的地方声明即可:
@Configuration
public class JdbcConfig {
@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}
}
我们直接把@ConfigurationProperties(prefix = “jdbc”)声明在需要使用的@Bean的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的set方法!