spring之Java配置代替传统的xml配置(spring配置1种+springboot配置2种)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40802017/article/details/102752678

一、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方法!

猜你喜欢

转载自blog.csdn.net/qq_40802017/article/details/102752678