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

SpringBoot實(shí)現(xiàn)自定義啟動(dòng)器的示例詳解

 更新時(shí)間:2023年01月12日 14:17:50   作者:不會(huì)壓彎的小飛俠  
雖然Spring官方給我們提供了很多的啟動(dòng)器供我們使用,但有時(shí)候我們也會(huì)遇到某些特殊場(chǎng)景,這些啟動(dòng)器滿足不了。這個(gè)時(shí)候就需要自定義一個(gè)啟動(dòng)器供我們使用,本文為大家介紹了SpringBoot實(shí)現(xiàn)自定義啟動(dòng)器的方法,希望對(duì)大家有所幫助

開(kāi)發(fā)步驟

1.創(chuàng)建啟動(dòng)器項(xiàng)目

  • 添加啟動(dòng)器相關(guān)依賴
  • 創(chuàng)建屬性配置類
  • 創(chuàng)建自動(dòng)配置類
  • 編寫(xiě)自動(dòng)配置文件(spring.factories)
  • 使用自定義的啟動(dòng)器

測(cè)試

創(chuàng)建個(gè)SpringBoot項(xiàng)目,導(dǎo)入依賴

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <!--引入spring‐boot‐starter;所有starter的基本配置-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
</dependency>

    <!--自動(dòng)配置連接池-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.12</version>
</dependency>

    <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
</dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

創(chuàng)建屬性配置類

@Component
@ConfigurationProperties(prefix = "spring.jdbc.datasource")
public class DataSourceProperties {
    private String driverClassName ;
    private String url;
    private String username;
    private String password;

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "DataSourceProperties{" +
                "driverClassName='" + driverClassName + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

創(chuàng)建自動(dòng)配置類

@SpringBootConfiguration  //當(dāng)前類是個(gè)配置類
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceAutoConfiguration {
    @Autowired
    private DataSourceProperties dataSourceProperties;

   @Bean
    public DataSource createDataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
        dataSource.setUrl(dataSourceProperties.getUrl());
        dataSource.setUsername(dataSourceProperties.getUsername());
        dataSource.setPassword(dataSourceProperties.getPassword());
        return dataSource;
    }

}

編寫(xiě)自動(dòng)配置屬性文件

在 resource 文件夾下面新建 META-INF/spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.study.config.DataSourceAutoConfiguration

執(zhí)行install , 安裝項(xiàng)目

自定義啟動(dòng)器

重新創(chuàng)建個(gè)項(xiàng)目,引用SpringBoot_datasource的依賴

<!--依賴自定義啟動(dòng)器-->
		<dependency>
			<groupId>com.study</groupId>
			<artifactId>SpringBoot_datasource</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>

配置連接池信息

server.port=8081
spring.jdbc.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jdbc.datasource.url=jdbc:mysql:///springboot_datasource
spring.jdbc.datasource.username=root
spring.jdbc.datasource.password=root
spring.profiles.active=datasource

編寫(xiě)Controller類

@RestController
public class HelloAutoController {
    @Autowired
    private DataSource dataSource;

    @RequestMapping("/dataSource")
    public String dataSource() {
        System.out.println(dataSource.getClass());//打印DruidDataSource數(shù)據(jù)源
        return "Hello dataSource! ! ! " ;
    }

}

使用自定義啟動(dòng)類進(jìn)行測(cè)試

啟動(dòng)器支持多Druid和C3P0

添加創(chuàng)建druid和c3p0方法

@SpringBootConfiguration  //當(dāng)前類是個(gè)配置類
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceAutoConfiguration {
    @Autowired
    private DataSourceProperties dataSourceProperties;
    @Bean
    @ConditionalOnProperty(value = "spring.jdbc.datasource.type",havingValue = "druid")
    public DataSource createDataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
        dataSource.setUrl(dataSourceProperties.getUrl());
        dataSource.setUsername(dataSourceProperties.getUsername());
        dataSource.setPassword(dataSourceProperties.getPassword());
        return dataSource;
    }

    @Bean
    @ConditionalOnProperty(value = "spring.jdbc.datasource.type",havingValue = "c3p0")
    public DataSource createC3P0DataSource() throws Exception {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass(dataSourceProperties.getDriverClassName());
        dataSource.setJdbcUrl(dataSourceProperties.getUrl());
        dataSource.setUser(dataSourceProperties.getUsername());
        dataSource.setPassword(dataSourceProperties.getPassword());
        return dataSource;
    }

}

配置文件中配置了spring.jdbc.datasource.type=druid使用druid數(shù)據(jù)源

server.port=8081
spring.jdbc.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jdbc.datasource.url=jdbc:mysql:///springboot_datasource
spring.jdbc.datasource.username=root
spring.jdbc.datasource.password=root
spring.jdbc.datasource.type=druid

重新安裝,再次測(cè)試

配置了spring.jdbc.datasource.type=c3p0使用c3p0數(shù)據(jù)源

server.port=8081
spring.jdbc.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jdbc.datasource.url=jdbc:mysql:///springboot_datasource
spring.jdbc.datasource.username=root
spring.jdbc.datasource.password=root
spring.jdbc.datasource.type=c3p0

重新安裝,再次測(cè)試

到此這篇關(guān)于SpringBoot實(shí)現(xiàn)自定義啟動(dòng)器的示例詳解的文章就介紹到這了,更多相關(guān)SpringBoot自定義啟動(dòng)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中@Lazy注解的使用技巧與實(shí)例解析

    Spring中@Lazy注解的使用技巧與實(shí)例解析

    @Lazy注解在Spring框架中用于延遲Bean的初始化,優(yōu)化應(yīng)用啟動(dòng)性能,它不僅適用于@Bean和@Component,還可以用于注入點(diǎn),通過(guò)將Bean的初始化延遲到第一次使用時(shí),可以減少不必要的資源消耗,本文介紹Spring中@Lazy注解的使用技巧與實(shí)例解析,感興趣的朋友一起看看吧
    2025-03-03
  • java?串口工具jSerialComm示例詳解

    java?串口工具jSerialComm示例詳解

    這篇文章主要介紹了java?串口工具jSerialComm,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • java 多線程與并發(fā)之volatile詳解分析

    java 多線程與并發(fā)之volatile詳解分析

    volatile這個(gè)關(guān)鍵字可能很多朋友都聽(tīng)說(shuō)過(guò),或許也都用過(guò)。在Java 5之前,它是一個(gè)備受爭(zhēng)議的關(guān)鍵字,因?yàn)樵诔绦蛑惺褂盟鶗?huì)導(dǎo)致出人意料的結(jié)果。在Java 5之后,volatile關(guān)鍵字才得以重獲生機(jī)
    2021-11-11
  • 基于Java生成圖片驗(yàn)證碼的方法解析

    基于Java生成圖片驗(yàn)證碼的方法解析

    這篇文章主要來(lái)為大家詳細(xì)介紹一下基于Java生成圖片驗(yàn)證碼的具體方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • springboot中json對(duì)象中對(duì)Long類型和String類型相互轉(zhuǎn)換

    springboot中json對(duì)象中對(duì)Long類型和String類型相互轉(zhuǎn)換

    與前端聯(lián)調(diào)接口時(shí),后端一些字段設(shè)計(jì)為L(zhǎng)ong類型,這樣就有可能導(dǎo)致前端缺失精度,這時(shí)候我們就需要將Long類型返回給前端時(shí)做數(shù)據(jù)類型轉(zhuǎn)換,本文主要介紹了springboot中json對(duì)象中對(duì)Long類型和String類型相互轉(zhuǎn)換,感興趣的可以了解一下
    2023-11-11
  • java解決請(qǐng)求跨域的兩種方法

    java解決請(qǐng)求跨域的兩種方法

    這篇文章主要為大家詳細(xì)介紹了java解決請(qǐng)求跨域的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Assert.assertNotNull()斷言是否是空問(wèn)題

    Assert.assertNotNull()斷言是否是空問(wèn)題

    這篇文章主要介紹了Assert.assertNotNull()斷言是否是空問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 使用Java和WebSocket實(shí)現(xiàn)網(wǎng)頁(yè)聊天室實(shí)例代碼

    使用Java和WebSocket實(shí)現(xiàn)網(wǎng)頁(yè)聊天室實(shí)例代碼

    WebSocket是HTML5一種新的協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,這里就將使用WebSocket來(lái)開(kāi)發(fā)網(wǎng)頁(yè)聊天室,對(duì)Java和WebSocket實(shí)現(xiàn)網(wǎng)頁(yè)聊天室的實(shí)例代碼感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • 使用Spring靜態(tài)注入實(shí)現(xiàn)讀取配置工具類新方式

    使用Spring靜態(tài)注入實(shí)現(xiàn)讀取配置工具類新方式

    這篇文章主要介紹了使用Spring靜態(tài)注入實(shí)現(xiàn)讀取配置工具類新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中初始化List的5種方法示例

    Java中初始化List的5種方法示例

    這篇文章主要給大家介紹了關(guān)于Java中初始化List的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論

沁阳市| 闵行区| 沾益县| 辰溪县| 长武县| 读书| 浮山县| 弋阳县| 广安市| 榆中县| 沭阳县| 南安市| 西华县| 曲阜市| 陆良县| 宣恩县| 新郑市| 翁源县| 苏州市| 广灵县| 鄂尔多斯市| 新昌县| 涿州市| 班玛县| 留坝县| 汕尾市| 延吉市| 视频| 锦屏县| 枣庄市| 镇赉县| 德令哈市| 黄石市| 城市| 宜昌市| 霍城县| 象州县| 格尔木市| 瑞丽市| 禹城市| 岳普湖县|