在JavaConfig中所使用的注解:
@Configuration //声明这个类是一个配置类 @Bean //定义在方法前,标记这个方法的返回值作为一个Bean注册到IOC容器中
@ConfigurationProperties(prefix = "jdbc") //声明配置属性的前缀 //如下 @Configuration public class MockConfiguration { @Bean public MockService mockService() { return new MockServiceImpl(); } } @ConigurationProperties(prefix = "jdbc") //声明配置属性的前缀 public class JdbcProperties { private String url; private String driverClassName; private String username; private String password; // ... 略 // getters 和 setters }
SpringBoot中的JavaConfig配置:
- 创建一个application.properties文件
- 创建一个DemoProperties类接收配置文件中定义的属性
- 创建JavaConfig类声明对应的配置方法
- 使用: 使用者可以通过注入的方式来使用配置类了
以Jdbc配置为例子:
application.properties:
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou jdbc.username=root jdbc.password=123 #设置数据源中连接数据库中需要的信息
JdbcProperties类:
package cn.yaocode.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; /* * 配置这个类用来加载配置文件的设置为属性注入准备 * */ @ConfigurationProperties(prefix = "jdbc") //设置配置文件中的前缀 @Data //使用这个注解来生成get,set方法 public class JdbcProperties { //创建配置文件中的属性 private String url; private String driverClassName; private String username; private String password; }
JdbcConfig类:
package cn.itcast.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration //声明这是一个配置类 public class JdbcConfig { //创建一个方法将连接池需要的数据源返回出去 @Bean //将这个方法返回值注册到IoC容器中 @ConfigurationProperties(prefix = "jdbc") public DataSource getDataSource(){ DruidDataSource dataSource = new DruidDataSource(); return dataSource; // } }
测试配置类使用:
@Autowired private JdbcConfig jdbcConfig; public static void main(String[] args){ jdbcConfig.getDataSource(); //调用配置类定义的方法 }