Java之SpringBoot自定义配置与整合Druid攻略
SpringBoot自定义配置
SpringBoot提供了优美的配置方式,采用约定大于配置的思想,通过强大的基础设施提供一种无须编写过多配置代码的方式。但在一些特殊情况下,我们还需要自定义配置。
配置方式
SpringBoot提供了多种方式进行自定义配置,包括:
- properties文件配置
- yml文件配置
- 通过@Configuration注解定义一个Java类
- 通过@Import注解引入其他配置类
- 使用外部化配置
示例
我们来看一个示例,假设我们需要在SpringBoot项目中自定义一个MyConfig类,该类需要配置一个属性myProperty,以及一个使用这个属性的方法printConfig。
- 新建MyConfig类,配置myProperty属性:
@Configuration
public class MyConfig {
@Value("${myproperty.value}")
private String myProperty;
@Bean(name = "myproperties")
public Properties myProperties() {
Properties props = new Properties();
props.setProperty("myProperty", myProperty);
return props;
}
}
在这个配置类里面,我们使用了@Value注解来注入配置项myproperty.value的值,然后通过@Bean注解将属性封装到Properties中返回。
- 在application.properties或application.yml文件中设置配置项:
properties方式
在application.properties文件中添加:
myproperty.value=my custom property
yml方式
在application.yml文件中添加:
myproperty:
value: my custom property
- 使用这个自定义的配置类
在任何需要使用这个自定义配置类的地方使用@Autowired注解即可。
@RestController
public class MyController {
@Autowired
@Qualifier("myproperties")
private Properties myProperties;
@GetMapping("/config")
public String getConfig() {
return myProperties.getProperty("myProperty");
}
}
整合Druid
在实际项目中,数据库连接池是非常必要的,Druid是当前JavaWeb领域最好的数据库连接池之一,在SpringBoot中使用非常简单。
引入依赖
在pom.xml中添加以下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
配置Druid连接池
在application.yml或application.properties文件中添加以下配置:
properties方式
# mysql
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# druid
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.filters=stat,wall
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
yml方式
# mysql
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
# druid
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
test-on-borrow: true
filters: stat,wall
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
测试Druid连接池
在Controller中使用JdbcTemplate调用数据库即可测试连接池是否正常工作。
@RestController
public class MyController {
@Autowired
private JdbcTemplate jdbcTemplate;
@GetMapping("/test")
public int test() {
return jdbcTemplate.queryForObject("select count(*) from user", Integer.class);
}
}
以上就是Java之SpringBoot自定义配置与整合Druid的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之SpringBoot自定义配置与整合Druid - Python技术站