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

第一步
在pom.xml導(dǎo)入
<!--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") //導(dǎo)入配置文件
public class JdbcConfig {
//將配置文件內(nèi)的 信息 放入變量中
@Value("${driverClassName}")
private String driverClassName; //JDBC驅(qū)動(dòng)
@Value("${url}")
private String url; //連接地址
@Value("${name}")
private String name; //數(shù)據(jù)庫(kù)用戶
@Value("${pass}")
private String pass; //數(shù)據(jù)庫(kù)密碼
@Value("${initialSize}")
private int initialSize; //初始化連接數(shù)量
@Value("${minIdle}")
private int minIdle; //最小連接數(shù)量
@Value("${maxActive}")
private int maxActive; //最大連接數(shù)量
@Value("${maxWait}")
private int maxWait; //最大等待時(shí)間
@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;
}
}第四步測(cè)試
連接池內(nèi)的數(shù)據(jù)是否 添加成功
打個(gè)斷點(diǎn)

運(yùn)行TestAplliaction 這個(gè)類的啟動(dòng)引導(dǎo)

然后在游覽器中輸入 http://localhost:8080/hello
回到IDEA控制臺(tái)中點(diǎn)擊

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

A控制臺(tái)中點(diǎn)擊

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

SpringBoot自定義配置類
1.方式一
配置類標(biāo)注:
@ConfigurationProperties注解,可以設(shè)置前綴名@Component將該類放入spring容器中
必須設(shè)定get/set方法
配置類:
@Component //將該Bean放入spring容器中
@ConfigurationProperties(prefix = "com.example")//指定該類為配置獲取類,并指定前綴
public class MyConfig {
? ? private String name;
? ? private Integer age;
? ? //必須設(shè)置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;
? ? //必須設(shè)置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);
? ? }
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot項(xiàng)目數(shù)據(jù)庫(kù)配置類DatabaseConfig示例詳解
- SpringBoot控制配置類加載順序方式
- SpringBoot通過(guò)自定義注解實(shí)現(xiàn)配置類的自動(dòng)注入的實(shí)現(xiàn)
- SpringBoot整合Web之CORS支持與配置類和 XML配置及注冊(cè)攔截器
- Springboot自動(dòng)配置與@Configuration配置類詳解
- SpringBoot2底層注解@Configuration配置類詳解
- springboot 跨域配置類及跨域請(qǐng)求配置
- springboot如何實(shí)現(xiàn)導(dǎo)入其他配置類
相關(guān)文章
Springboot?對(duì)接支付寶實(shí)現(xiàn)掃碼支付功能
本文介紹了如何在Spring?Boot項(xiàng)目中實(shí)現(xiàn)支付寶支付功能,包括沙箱環(huán)境配置、依賴引入、配置參數(shù)、訂單類定義、測(cè)試接口編寫等步驟,通過(guò)不同場(chǎng)景下的請(qǐng)求方式(PC端、二維碼、回調(diào)處理、定時(shí)查詢支付結(jié)果),展示了如何與支付寶API進(jìn)行交互,感興趣的朋友一起看看吧2025-03-03
解決mybatis plus字段為null或空字符串無(wú)法保存到數(shù)據(jù)庫(kù)的問(wèn)題
這篇文章主要介紹了解決mybatis plus字段為null或空字符串無(wú)法保存到數(shù)據(jù)庫(kù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
java實(shí)現(xiàn)用戶簽到BitMap功能實(shí)現(xiàn)demo
這篇文章主要為大家介紹了java實(shí)現(xiàn)用戶簽到BitMap功能實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
如何從Java環(huán)境中調(diào)用GoLang函數(shù)
Go,常被稱為GoLang,Go語(yǔ)言憑借其豐富的標(biāo)準(zhǔn)庫(kù),以及 goroutines和 channels等獨(dú)特特性,在開(kāi)發(fā)可擴(kuò)展且高效的程序方面展現(xiàn)了顯著優(yōu)勢(shì),許多開(kāi)發(fā)者傾向于將Go與其他編程語(yǔ)言結(jié)合使用,在本文中,我們將深入探討如何從Java環(huán)境中調(diào)用GoLang函數(shù),以實(shí)現(xiàn)兩種語(yǔ)言的無(wú)縫集成2025-01-01

