最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中的配置類(@Configuration)

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

SpringBoot基于java類的配置

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

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

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

我們接下來用Java類配置來嘗試實(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ù)庫用戶
    @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;  //最大等待時(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;
    }
}

第四步測試

連接池內(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)容中找到 對應(yīng)的信息 就ok了

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

能在顯示的內(nèi)容中找到 對應(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 超級(jí)詳細(xì)的Java安裝教程(Mac版)

    超級(jí)詳細(xì)的Java安裝教程(Mac版)

    Java是一種廣泛使用的編程語言,可用于開發(fā)各種類型的應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于Mac系統(tǒng)下Java安裝的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 詳解jvm雙親委派機(jī)制

    詳解jvm雙親委派機(jī)制

    雙親委派機(jī)制保證了核心類的安全,確保不會(huì)被修改,也保證了不會(huì)加載到重復(fù)的字節(jié)碼文件,這篇文章主要介紹了jvm雙親委派機(jī)制詳解,需要的朋友可以參考下
    2022-11-11
  • Springboot?對接支付寶實(shí)現(xiàn)掃碼支付功能

    Springboot?對接支付寶實(shí)現(xiàn)掃碼支付功能

    本文介紹了如何在Spring?Boot項(xiàng)目中實(shí)現(xiàn)支付寶支付功能,包括沙箱環(huán)境配置、依賴引入、配置參數(shù)、訂單類定義、測試接口編寫等步驟,通過不同場景下的請求方式(PC端、二維碼、回調(diào)處理、定時(shí)查詢支付結(jié)果),展示了如何與支付寶API進(jìn)行交互,感興趣的朋友一起看看吧
    2025-03-03
  • Java線程協(xié)作的兩種方式小結(jié)

    Java線程協(xié)作的兩種方式小結(jié)

    Java中線程協(xié)作的最常見的兩種方式是利用Object.wait()、Object.notify()和使用Condition,本文主要介紹了Java線程協(xié)作的兩種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java自動(dòng)裝箱拆箱深入剖析

    java自動(dòng)裝箱拆箱深入剖析

    基本數(shù)據(jù)(Primitive)類型的自動(dòng)裝箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0開始提供的功能。java語言規(guī)范中說道:在許多情況下包裝與解包裝是由編譯器自行完成的(在這種情況下包裝成為裝箱,解包裝稱為拆箱)
    2012-11-11
  • 解決mybatis plus字段為null或空字符串無法保存到數(shù)據(jù)庫的問題

    解決mybatis plus字段為null或空字符串無法保存到數(shù)據(jù)庫的問題

    這篇文章主要介紹了解決mybatis plus字段為null或空字符串無法保存到數(shù)據(jù)庫的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java實(shí)現(xiàn)用戶簽到BitMap功能實(shí)現(xiàn)demo

    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ù)

    如何從Java環(huán)境中調(diào)用GoLang函數(shù)

    Go,常被稱為GoLang,Go語言憑借其豐富的標(biāo)準(zhǔn)庫,以及 goroutines和 channels等獨(dú)特特性,在開發(fā)可擴(kuò)展且高效的程序方面展現(xiàn)了顯著優(yōu)勢,許多開發(fā)者傾向于將Go與其他編程語言結(jié)合使用,在本文中,我們將深入探討如何從Java環(huán)境中調(diào)用GoLang函數(shù),以實(shí)現(xiàn)兩種語言的無縫集成
    2025-01-01
  • SpringBoot中自動(dòng)配置原理解析

    SpringBoot中自動(dòng)配置原理解析

    SpringBoost是基于Spring框架開發(fā)出來的功能更強(qiáng)大的Java程序開發(fā)框架,本文將以廣角視覺來剖析SpringBoot自動(dòng)配置的原理,涉及部分Spring、SpringBoot源碼,需要的可以參考下
    2023-11-11
  • springboot跨域問題解決方案

    springboot跨域問題解決方案

    這篇文章主要介紹了springboot跨域問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評論

洮南市| 贵港市| 长沙市| 沁阳市| 敦化市| 杂多县| 宁阳县| 漳州市| 东丽区| 澄迈县| 东乡| 安宁市| 福建省| 通城县| 清徐县| 罗田县| 浑源县| 河北区| 本溪市| 收藏| 蒙自县| 阿荣旗| 二连浩特市| 汝州市| 宝兴县| 延津县| 邯郸市| 峨眉山市| 麻江县| 黄骅市| 竹北市| 石台县| 喀什市| 越西县| 淮北市| 军事| 罗平县| 谷城县| 宁波市| 桂东县| 交口县|