上一讲tomcat默认端口8080 默认路径是根目录/
我们现在改成 端口8888 以及上下文路径/HelloWorld,我们在application.properties中写入
但是这个时候我们需要在页面输入:http://localhost:8888/HelloWorld/hello
结果出来了
这样我们就修改了默认的访问端口及访问路径
上边我们使用的是SpringBoot提供的一些属性配置,我们也可以自定义一些属性
我们在application.properties中加一个自定义一个helloWorld属性,属性值为:Spring Boot hello world
server.port=8888 server.context-path=/HelloWorld helloWorld=Spring Boot hello world
我们controller中新建一个HelloWorldController2对其进行使用自定义属性
package com.jd.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 使用自定义属性 */ //组合注解==>返回json数据,等同于@ReponseBody与@Controller public class HelloWorldController2 { //通过Value注解注入 application.properties中定义的属性 ("${helloWorld}") private String helloWorld; ("/hello2") public String say(){ return helloWorld; } }
我们重启SpringbootDemoApplication类,因为我们之前设置了端口号和访问路径,所以接下来的访问页面输入:
看,结果是我们自定义的属性可以访问到了!!
比如mysql的jdbc连接配置
mysql.jdbcName=com.mysql.jdbc.Driver
mysql.dbUrl=jdbc:mysql://localhost:3306/db_diary
mysql.userName=root
mysql.password=123456
我们贴到application.properties(这里自行复制过去即可,不演示了)
然后按照前面的方案,我们在Controller(新建HelloWorldController3)里写四个属性;
package com.jd.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 使用自定义属性 */ //组合注解==>返回json数据,等同于@ReponseBody与@Controller public class HelloWorldController3 { ("${helloWorld}") private String helloWorld; ("${mysql.jdbcName}") private String jdbcName; ("${mysql.dbUrl}") private String dbUrl; ("${mysql.userName}") private String userName; ("${mysql.password}") private String password; ("/showJdbc") public String showJdbc(){ return "mysql.jdbcName:"+jdbcName+"
" +"mysql.dbUrl:"+dbUrl+"
" +"mysql.userName:"+userName+"
" +"mysql.password:"+password; } }
重启启动类,页面输入:
下面我们介绍@ConfigurationProperties注解的配置方式
新建一个properties包,新建一个MysqlPropertity类 把所有属性都配置上去
我们分析我们数据库的配置都是以mysql.XXX来配置的,我们执行前缀是msyql
我们可以使用@Component作为组件 方便其他地方注入,接下来是代码演示,简化在com.jd包下新键一个propertities包,新建一个MysqlProperties类
package com.jd.propertities; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * Created by Administrator on 2018/6/24. */ prefix = "mysql") //这个表示前缀为mysql的自定义属性 ( public class MysqlPropertity { /** * 属性为mysql.XXX,后面的后缀,注意变量名和配置文件中一致 */ 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 getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getDbUrl() { return dbUrl; } public void setDbUrl(String dbUrl) { this.dbUrl = dbUrl; } }
需要引入依赖到pom.xml
<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-configuration-processorartifactId> <optional>trueoptional> dependency>
再Controller(新建HelloWorldController4)中使用
package com.jd.controller; 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; /** * 使用自定义属性 */ public class HelloWorldController4 { //通过注解直接注入进来,我们便可以使用 private MysqlProperties mysqlProperties; ("/showJdbc2") public String showJdbc(){ return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"
" +"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"
" +"mysql.userName:"+mysqlProperties.getUserName()+"
" +"mysql.password:"+mysqlProperties.getPassword(); } }
只需要定义MysqlProperties即可 方便很多 运行结果和之前一样,代码量大大减少