前面已經講解過了helloWord的實現。
今天主要玩下application.properties項目的配置文件。
點進去我會發現這個文件空空如也:

server.port = 8888 server.context-path = /HelloWorld
tomcat的默認端口是8080,默認路徑是根目錄/。
我們現在改成端口8080以及上下文路徑 /HelloWorld。
改完后保存,啟動HelloWorldApplication類。
頁面輸入http://localhost:8888/HelloWorld/hello
你大爺就出來了。
SpringBoot支持自定義屬性
我們在application.properties中加一個lol屬性,屬性值"泰達米爾"
在配置文件中添加:
lol = "\u6CF0\u8FBE\u7C73\u5C14"
這是對中文字節編碼處理了。
package com.zznode.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @Value("$lol") public String lol; @RequestMapping("/hello") public String say(){ return lol; } }
頁面里我們定義然后配置一個屬性值,調用請求,可以直接返回配置的值。
這是比較方便的功能。
我們重啟HelloWorldApplication類,
頁面輸入http://localhost:8888/HelloWorld/hello
顯示下面內容:

假如我們需要配置多個屬性呢,比如musql的jdbc連接配置
將下面四個屬性寫到配置文件中
mysql.jdbcName=com.mysql.jdbc.Driver mysql.dbUrl=jdbc:mysql://localhost:3306/db mysql.userName=root mysql.password=123456
這里依葫蘆畫瓢,和上面一樣Controller里寫四個屬性。
package com.zznode.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @Value("${lol}") public String lol; @Value("${mysql.jdbcName}") private String jdbcName; @Value("${mysql.dbUrl}") private String dbUrl; @Value("${mysql.userName}") private String userName; @Value("${mysql.password}") private String password; @RequestMapping("/hello") public String say(){ return lol; } @RequestMapping("/showJdbc") public String showJdbc(){ return "mysql.jdbcName:"+jdbcName+"<br/>" +"mysql.dbUrl:"+dbUrl+"<br/>" +"mysql.userName:"+userName+"<br/>" +"mysql.password:"+password; } }
我們重啟HelloWorldApplication類,
頁面輸入http://localhost:8888/HelloWorld/hello
顯示下面內容:
貌似這個操作好多次了,應該把這操作封裝到一個方法里。

到這里可能就會有人有疑問了。假如屬性特別多,要寫一大串,每個地方都使用,每個地方都要寫這么多。
我這里有個ConfigurationProperties配置方式
新建一個MysqlProperties類把所有屬性配置上去
package com.zznode.demo; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * Mysql屬性配置文件 * * @author user * */ @Component @ConfigurationProperties(prefix = "msyql") public class MysqlProperties { private String jdbcName; private String dbUrl; private String userName; private String password; public String getJdbcName() { return jdbcName; } public void setJdbcName(String jdbcName) { this.jdbcName = jdbcName; } public String getDbUrl() { return dbUrl; } public void setDbUrl(String dbUrl) { this.dbUrl = dbUrl; } 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; } }
執行前綴mysql以及加上@Component為組件,方便其他地方注入。
HelloWorldController里改下
package com.zznode.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @Value("${lol}") public String lol; @Autowired private MysqlProperties mysqlProperties; @RequestMapping("/hello") public String say(){ return lol; } @RequestMapping("/showJdbc") public String showJdbc(){ return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>" +"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>" +"mysql.userName:"+mysqlProperties.getUserName()+"<br/>" +"mysql.password:"+mysqlProperties.getPassword(); } }
重啟新項目可以看到和上面的一樣的效果,這樣很多地方需要用的時候只需要調用類就ok啦。
