SpringBoot中的配置類(@Configuration)
SpringBoot基于java類的配置
java配置主要靠java類和一些注解來達到和xml配置一樣的效果,比較常用的注解有:
@Configuration:聲明一個類作為配置類,代替xml文件@Bean:聲明在方法上,將方法的返回值加入Bean容器,代替標簽@Value:屬性注入@PropertySource:指定外部屬性文件(properties)。@ConfigurationProperties(prefix = “xx”)(指定配置屬性的前綴)
提示: @Configuration也附帶了@Component的功能。所以理論上內(nèi)部也可以使用@Autowared功能的
我們接下來用Java類配置來嘗試實現(xiàn)連接池配置

第一步
在pom.xml導入
<!--druid 數(shù)據(jù)連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>第二步
添加druid.properties文件到resources包里
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/order?characterEncoding=utf-8 name=root pass=root initialSize=1 minIdle=1 maxActive=20 maxWait=3
第三步
創(chuàng)建配置文件 JdbcConfig
package cn.boke.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
@Configuration //聲明配置類
@PropertySource("classpath:druid.properties") //導入配置文件
public class JdbcConfig {
//將配置文件內(nèi)的 信息 放入變量中
@Value("${driverClassName}")
private String driverClassName; //JDBC驅(qū)動
@Value("${url}")
private String url; //連接地址
@Value("${name}")
private String name; //數(shù)據(jù)庫用戶
@Value("${pass}")
private String pass; //數(shù)據(jù)庫密碼
@Value("${initialSize}")
private int initialSize; //初始化連接數(shù)量
@Value("${minIdle}")
private int minIdle; //最小連接數(shù)量
@Value("${maxActive}")
private int maxActive; //最大連接數(shù)量
@Value("${maxWait}")
private int maxWait; //最大等待時間
@Bean("dataSource") //將配置信息 存入Spring 容器中 名稱為 dataSource
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driverClassName);
dataSource.setUsername( name);
dataSource.setPassword(pass);
dataSource.setInitialSize(initialSize);
dataSource.setMaxActive(maxActive);
dataSource.setMaxWait(maxWait);
return dataSource;
}
}第四步測試
連接池內(nèi)的數(shù)據(jù)是否 添加成功
打個斷點

運行TestAplliaction 這個類的啟動引導

然后在游覽器中輸入 http://localhost:8080/hello
回到IDEA控制臺中點擊

能在顯示的內(nèi)容中找到 對應的信息 就ok了

A控制臺中點擊

能在顯示的內(nèi)容中找到 對應的信息 就ok了

SpringBoot自定義配置類
1.方式一
配置類標注:
@ConfigurationProperties注解,可以設置前綴名@Component將該類放入spring容器中
必須設定get/set方法
配置類:
@Component //將該Bean放入spring容器中
@ConfigurationProperties(prefix = "com.example")//指定該類為配置獲取類,并指定前綴
public class MyConfig {
? ? private String name;
? ? private Integer age;
? ? //必須設置get set方法
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
? ? public Integer getAge() {
? ? ? ? return age;
? ? }
? ? public void setAge(Integer age) {
? ? ? ? this.age = age;
? ? }
}application.properties中配置
com.example.age=20 com.example.name=xxx
使用:
在其他Bean中可以直接注入該Bean
@RestController
public class DemoController {
? ? @Autowired
? ? private MyConfig config;
? ? @GetMapping("/demo2")
? ? public String m2(){
? ? ? ? return config.getName();
? ? }
}2.方式二
配置類:
不使用 @Component 將該類放入spring容器中,而是使用@EnableConfigurationProperties(MyConfig.class)在根配置類中引入
@ConfigurationProperties(prefix = "com.example")//指定該類為配置獲取類,并指定前綴
public class MyConfig {
? ? private String name;
? ? private Integer age;
? ? //必須設置get set方法
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
? ? public Integer getAge() {
? ? ? ? return age;
? ? }
? ? public void setAge(Integer age) {
? ? ? ? this.age = age;
? ? }
}@SpringBootApplication
@EnableConfigurationProperties(MyConfig.class) //引入自定義配置類
public class DemoApplication {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(DemoApplication.class,args);
? ? }
}以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決Druid動態(tài)數(shù)據(jù)源配置重復刷錯誤日志的問題
使用druid數(shù)據(jù)庫連接池實現(xiàn)動態(tài)的配置數(shù)據(jù)源功能,在配置過程中出現(xiàn)一個問題既然是用戶自己配置的數(shù)據(jù)源,就無法避免輸入錯誤,連接失敗等情況,關于這個問題怎么處理呢,今天小編通過本文給大家詳細說明下,感興趣的朋友一起看看吧2021-05-05
基于紅黑樹插入操作原理及java實現(xiàn)方法(分享)
下面小編就為大家分享一篇基于紅黑樹插入操作原理及java實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
SpringBoot實現(xiàn)HTTP服務監(jiān)聽的代碼示例
前后端分離項目中,在調(diào)用接口調(diào)試時候,我們可以通過cpolar內(nèi)網(wǎng)穿透將本地服務端接口模擬公共網(wǎng)絡環(huán)境遠程調(diào)用調(diào)試,本次教程我們以Java服務端接口為例,需要的朋友可以參考下2023-05-05

