您好,登錄后才能下訂單哦!
這篇文章主要介紹“Springboot外置怎么配置”,在日常操作中,相信很多人在Springboot外置怎么配置問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Springboot外置怎么配置”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
spring Boot 自動(dòng)配置的bean提供了300多個(gè)用于微調(diào)的屬性.當(dāng)調(diào)整設(shè)置時(shí),只需要在環(huán)境變量,Java系統(tǒng)屬性,JNDI,命令行參數(shù),屬性文件進(jìn)行配置 就好了.
假設(shè)我們想要禁止啟動(dòng)springboot應(yīng)用時(shí)的 banner .有以下幾種方法:
spring.main.show-banner=false
$ java -jar myapp.jar --spring.main.show-banner=false
如果你用的是bash或者zsh,可以使用 export 命令
$ export spring.main.show-banner=false
從命令行運(yùn)行springboot應(yīng)用程序時(shí),應(yīng)用程序會(huì)啟動(dòng)一個(gè)嵌入式的服務(wù)器,監(jiān)聽(tīng)8080端口.如果想要修改默認(rèn)端口,
可以使用命令行參數(shù)
$ java -jar myapp.jar --server.port=80
默認(rèn)情況下,springboot會(huì)使用 Logback來(lái)記錄日志,并用INFO級(jí)別輸出到控制臺(tái).
使用其他日志替換掉Logback
一般來(lái)說(shuō),你不需要切換日志實(shí)現(xiàn),Logback能很好滿(mǎn)足你的需要.但是如果你決定要使用Log4j 或者Log4j2,
你只需要修改依賴(lài):引入對(duì)應(yīng)的日志實(shí)現(xiàn)的起步依賴(lài),同時(shí)排除掉Logback 即可.
以maven為例:
在maven里,可以用 來(lái)排除傳遞依賴(lài)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log</artifactId> </exclusion> </exclusions> </dependency>
然后加入Log4j的起步依賴(lài)即可
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> </dependency>
設(shè)置日志級(jí)別和日志輸出文件位置:
在applecation.properties 中以logging開(kāi)頭.
在 idea中會(huì)有很好的提示
在配置文件中
######################## #數(shù)據(jù)庫(kù)配置 ########################## spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.hbm2ddl.auto=update # 主要是指定生成表名的存儲(chǔ)引擎為InneoDB spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect # 是否打印出自動(dòng)生產(chǎn)的SQL,方便調(diào)試的時(shí)候查看 spring.jpa.show-sql= true
cDNPXUfy">在自動(dòng)配置 dataSource Bean的時(shí)候,Spring boot會(huì)使用這里的連接數(shù)據(jù).
DataSource是一個(gè)連接池,如果Classpath下有Tomcat的連接池 DataSource,那么就會(huì)使用這個(gè)連接池,否則Spring Boot會(huì)在Classpath里查找一下連接池:
HikariCp
Commons DBCP
Commons DBCP2
這里列出的是自動(dòng)配置支持的連接池.你還可以配置DataSource的Bean,使用你喜歡的各種連接池.
如果我們想要使用 druid 連接池,如何做呢,其實(shí)關(guān)于 druid,已經(jīng)有一個(gè)起步依賴(lài):
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency>
只需要添加這個(gè)依賴(lài),Springboot就會(huì)自動(dòng)檢測(cè)Classpath下是否有druid存在,如果有,就是用它.
現(xiàn)在我們?cè)?applecation.properties 中有一個(gè)屬性值,以weixin開(kāi)頭
##################### #在一個(gè)類(lèi)里收集屬性 ###################### weixin.appid = 12346
我們要在Controller里獲取這個(gè)屬性值,現(xiàn)在我們考慮用一個(gè)屬性類(lèi)來(lái)獲取所有與weixin相關(guān)的配置信息,
新建一個(gè)類(lèi) WeixinProperties.java
/** * 收集配置文件的weixin 前綴屬性 * * @author itguang * @create @Component //注入帶 weixin 前綴的屬性 @ConfigurationProperties(prefix = "weixin") public class WeixinProperties private String appid; //提供getter 和 setter方法 public String getAppid() { return appid; } public void setAppid(String appid) { this.appid = appid; } }
因?yàn)槭褂昧薂Component注解,所以這個(gè)屬性類(lèi)是一個(gè)Bean,這樣我們就可以在Controller里把它注入進(jìn)來(lái):
@RestController public class WeixinController @Autowired private WeixinProperties weixinProperties; @RequestMapping(value = "test") public String test(){ return
當(dāng)應(yīng)用程序需要部署到不同的運(yùn)行環(huán)境中去,一些配置細(xì)節(jié)通常會(huì)有所不同.
比如數(shù)據(jù)庫(kù)連接的細(xì)節(jié)在開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境就會(huì)不一樣,在生產(chǎn)環(huán)境下又會(huì)不一樣.
Spring Framework 從Spring3.1開(kāi)始支持基于Profile的配置.
Profile是一種條件化配置,基于運(yùn)行時(shí)激活的Profile,會(huì)使用或者激活不同的Bean或者配置類(lèi).
為了演示Profile的屬性,假設(shè)我們希望針對(duì)生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境有不同的配置.該怎莫做呢?這取決于你是用的是屬性文件配置還是YAML配置.
這里我們以屬性配置文件為例
如果你正在使用 application.properties ,可以創(chuàng)建兩個(gè)額外的屬性文件,遵循 application-{profile}.properties這種命名格式.
在日志這個(gè)例子里,開(kāi)發(fā)環(huán)境的配置放在 application-devlopment.properties
logging.level.root=debug
生產(chǎn)環(huán)境的配置放在 application-production.properties
logging.level.root= warn
如何激活呢,在application.properties設(shè)置 spring.profiles.active
屬性就能激活特定的Profile.
###################### #日志配置 ##################### # 設(shè)置激活特定的Profile
或者在命令行啟動(dòng)程序時(shí),指定激活的Profile
$ java -jar myapp.jar --spring.profiles.active=devlopment
另外我們還可以在java配置類(lèi)里面指定特定的Profile
/** * 指定特定Profile的配置類(lèi) * * @author itguang * @create @Configuration @Profile("devlopment") public class ProfileConfigTest //...
意思是只有激活 devlopment 的Profile時(shí),才會(huì)應(yīng)用此配置類(lèi),如果 devlopment 對(duì)應(yīng)的Profile
沒(méi)有被激活的話(huà)就會(huì)忽略此配置.
需要注意的是,application.properties 屬性文件中的配置對(duì)所有的Profile都生效.
覆蓋自動(dòng)配置其實(shí)很簡(jiǎn)單,就是顯示的編寫(xiě)那些沒(méi)有SpringBoot 時(shí)你需要的Spring配置.
Spring Boot的自動(dòng)配置被設(shè)置為優(yōu)先使用應(yīng)用程序提供的配置,然后才輪到自己的自動(dòng)配置.
到此,關(guān)于“Springboot外置怎么配置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。