欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中的配置類(lèi)(@Configuration)

 更新時(shí)間:2022年06月10日 15:14:35   作者:胡安民  
這篇文章主要介紹了SpringBoot中的配置類(lèi)(@Configuration),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringBoot基于java類(lèi)的配置

java配置主要靠java類(lèi)和一些注解來(lái)達(dá)到和xml配置一樣的效果,比較常用的注解有:

  • @Configuration:聲明一個(gè)類(lèi)作為配置類(lèi),代替xml文件
  • @Bean:聲明在方法上,將方法的返回值加入Bean容器,代替標(biāo)簽
  • @Value:屬性注入
  • @PropertySource:指定外部屬性文件(properties)。
  • @ConfigurationProperties(prefix = “xx”) (指定配置屬性的前綴)

提示: @Configuration也附帶了@Component的功能。所以理論上內(nèi)部也可以使用@Autowared功能的

我們接下來(lái)用Java類(lèi)配置來(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  //聲明配置類(lèi)
@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 容器中 名稱(chēng)為 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è)類(lèi)的啟動(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自定義配置類(lèi)

1.方式一

配置類(lèi)標(biāo)注:

  • @ConfigurationProperties注解,可以設(shè)置前綴名
  • @Component 將該類(lèi)放入spring容器中

必須設(shè)定get/set方法

配置類(lèi):

@Component //將該Bean放入spring容器中
@ConfigurationProperties(prefix = "com.example")//指定該類(lèi)為配置獲取類(lèi),并指定前綴
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.方式二

配置類(lèi):

不使用 @Component 將該類(lèi)放入spring容器中,而是使用@EnableConfigurationProperties(MyConfig.class)在根配置類(lèi)中引入 

@ConfigurationProperties(prefix = "com.example")//指定該類(lèi)為配置獲取類(lèi),并指定前綴
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) //引入自定義配置類(lèi)
public class DemoApplication {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(DemoApplication.class,args);
? ? }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    這篇文章主要介紹了淺談Java多線程的優(yōu)點(diǎn)及代碼示例,還是比較不錯(cuò)的,這里分享給大家,需要的朋友可以參考。
    2017-11-11
  • 解決Druid動(dòng)態(tài)數(shù)據(jù)源配置重復(fù)刷錯(cuò)誤日志的問(wèn)題

    解決Druid動(dòng)態(tài)數(shù)據(jù)源配置重復(fù)刷錯(cuò)誤日志的問(wèn)題

    使用druid數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)動(dòng)態(tài)的配置數(shù)據(jù)源功能,在配置過(guò)程中出現(xiàn)一個(gè)問(wèn)題既然是用戶自己配置的數(shù)據(jù)源,就無(wú)法避免輸入錯(cuò)誤,連接失敗等情況,關(guān)于這個(gè)問(wèn)題怎么處理呢,今天小編通過(guò)本文給大家詳細(xì)說(shuō)明下,感興趣的朋友一起看看吧
    2021-05-05
  • java多線程三種上鎖方式小結(jié)

    java多線程三種上鎖方式小結(jié)

    本文主要介紹了java多線程三種上鎖方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • 深入淺析Mybatis的缺陷問(wèn)題

    深入淺析Mybatis的缺陷問(wèn)題

    Mybatis是業(yè)界非常流行的持久層框架,輕量級(jí)、易用,在金融IT領(lǐng)域完全是領(lǐng)軍地位,比Hibernate更受歡迎,優(yōu)勢(shì)非常多,也是非常值得我們學(xué)習(xí)的。這篇文章主要介紹了Mybatis的缺陷問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • linux重啟java服務(wù)的腳本

    linux重啟java服務(wù)的腳本

    這篇文章主要介紹了linux重啟java服務(wù)的腳本,本文分步驟通過(guò)shell腳本給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 基于紅黑樹(shù)插入操作原理及java實(shí)現(xiàn)方法(分享)

    基于紅黑樹(shù)插入操作原理及java實(shí)現(xiàn)方法(分享)

    下面小編就為大家分享一篇基于紅黑樹(shù)插入操作原理及java實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Mybatis中 XML配置詳解

    Mybatis中 XML配置詳解

    這篇文章主要介紹了Mybatis中 XML配置詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Java排序算法之計(jì)數(shù)排序解析

    Java排序算法之計(jì)數(shù)排序解析

    這篇文章主要介紹了Java排序算法之計(jì)數(shù)排序解析,找到數(shù)組中數(shù)值最大的元素,創(chuàng)建一個(gè)長(zhǎng)度為最大元素+1的臨時(shí)數(shù)組,這樣就可以把原始數(shù)組轉(zhuǎn)換為以原始數(shù)組元素值為下標(biāo),相同元素個(gè)數(shù)為值的臨時(shí)數(shù)組,需要的朋友可以參考下
    2023-10-10
  • SpringBoot 配置提示功能(超詳細(xì))

    SpringBoot 配置提示功能(超詳細(xì))

    這篇文章主要介紹了SpringBoot 配置提示功能,本文給大家介紹的超詳細(xì),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot實(shí)現(xiàn)HTTP服務(wù)監(jiān)聽(tīng)的代碼示例

    SpringBoot實(shí)現(xiàn)HTTP服務(wù)監(jiān)聽(tīng)的代碼示例

    前后端分離項(xiàng)目中,在調(diào)用接口調(diào)試時(shí)候,我們可以通過(guò)cpolar內(nèi)網(wǎng)穿透將本地服務(wù)端接口模擬公共網(wǎng)絡(luò)環(huán)境遠(yuǎn)程調(diào)用調(diào)試,本次教程我們以Java服務(wù)端接口為例,需要的朋友可以參考下
    2023-05-05

最新評(píng)論