SpringBoot入门学习(二)
第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容
- 项目内一些属性配置
- 自定义属性配置
- ConfigurationProperties配置
(1)第一个工程创建的时候会自动在工程下创建application.properties文件,如下图,那么该文件有什么作用呢?
该文件主要用于参数配置,类似于web.xml一样,可以配置不同的参数,而且比web.xml 更强大。首先分析一下,demo首次访问项目地址是 http://localhost:8080/,
我们并没有加项目路径,其实,这是springboot默认的。如果要加上项目路径,就只要在application.properties中配置即可,接下来我们将加上项目路径以及更改端口访问。
在application.properties中配置如下
重启项目访问 http://localhost:8888/hello/hello,结果如下图,正常可以访问。
(2)自定义属性配置,日常开发中,我们知道,有一些参数是需要配置的,比如jdbc参数。那么我们是如何在application.properties中配置以及在程序是获取呢?
首先在application.properties中配置参数如下
在Demo这个类中增加相应代码。获取配置文件中的参数的值。代码如下:
重启服务,然后访问 http://localhost:8888/hello/showDbMsg,结果如下,这就是自定义属性配置。
(3)在上面我们已经获取到配置文件的参数了,但是有一个问题,Demo类使用了这几个参数,如果有上百个类也要引用,还需要定义上百次变量,这可不是好事情。所以我们要通过一种其他的方式来获取,即是抽取变量定义到一个实体类中,
然后使用@ConfigurationProperties注解,自动解析参数给实体类赋值。当然application.properties定义的还是不变。
新增实体类MySqlProperties
package com.example.demo; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; @Component
@ConfigurationProperties(prefix = "mysql")
public class MySqlProperties { private String jdbcName;
private String userName;
private String password;
private String jdbcUrl; public String getJdbcName() {
return jdbcName;
} public void setJdbcName(String jdbcName) {
this.jdbcName = jdbcName;
} public String getJdbcUrl() {
return jdbcUrl;
} public void setJdbcUrl(String jdbcUrl) {
this.jdbcUrl = jdbcUrl;
} 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 "MySqlProperties [jdbcName=" + jdbcName + ", jdbcUrl=" + jdbcUrl + ", userName=" + userName
+ ", password=" + password + "]";
} }
demo类改造后如下:
package com.example.demo;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class Demo { @Resource
private MySqlProperties mySqlProperties; @ResponseBody
@RequestMapping("/showDbMsg")
public String showDbMsg() {
return mySqlProperties.toString(); } @ResponseBody
@RequestMapping("/hello")
public String name() {
return "hello spring boot"; }
}
重启容器后访问,http://localhost:8888/hello/showDbMsg,结果如下图,能正常访问。
SpringBoot入门学习(二)的更多相关文章
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- SpringMVC入门学习(二)
SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...
- SpringBoot入门(二)——起步依赖
本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...
- git入门学习(二):新建分支/上传代码/删除分支
一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...
- 【Java】SpringBoot入门学习及基本使用
SpringBoot入门及基本使用 SpringBoot的介绍我就不多说了,核心的就是"约定大于配置",接下来直接上干货吧! 本文的实例: github-LPCloud,欢迎sta ...
- SpringBoot入门学习看这一篇就够了
1.SpringBoot是什么? SpringBoot是一套基于Spring框架的微服务框架. 2.为什么需要SpringBoot 由于Spring是一个轻量级的企业开发框架,主要的功能就是用于整合和 ...
- Egg入门学习(二)---理解service作用
在上一篇文章 Egg入门学习一 中,我们简单的了解了Egg是什么东西,且能做什么,这篇文章我们首先来看看官网对Egg的整个框架的约定如下,及约定对应的目录是做什么的,来有个简单的理解,注意:我也是按照 ...
- SpringBoot入门学习(一)
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我 ...
随机推荐
- JQuery------实现鼠标点击和滑动不同效果
如图: 代码: html <ul class="price-brand-right"> @foreach (Brand item in ViewBag.Brand) { ...
- 最受欢迎的五大BUG管理系统
五大最受欢迎的BUG管理系统 Google在中国大*陆遭遇变故做出暂时性的退出大*陆市场,也使很多忠实的用户受到小小的挫折,以本公司为例,原本的BUG都是记录在google的EXCEL在线文档中 ...
- java基础---->Java中异常的使用(二)
这一篇博客用例子讲述一下异常的处理过程.那些 我们一直惴惴不安 又充满好奇的未来 会在心里隐隐约约地觉得它们是明亮的. 异常的执行过程 一.实例一:return语句 public class Exce ...
- pure
Pure也是一款很出色的CSS框架,之前分享的Bootstrap是由Twitter出品的,而Pure是来自雅虎的.尽管从UI界面效果上来说,Pure没有Bootstrap那样精美,但Pure是纯CSS ...
- 【BZOJ4873】[Shoi2017]寿司餐厅 最大权闭合图
[BZOJ4873][Shoi2017]寿司餐厅 Description Kiana最近喜欢到一家非常美味的寿司餐厅用餐.每天晚上,这家餐厅都会按顺序提供n种寿司,第i种寿司有一个代号ai和美味度di ...
- 设计模式之Factory工厂模式
在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理.如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式. 在Factory模式中,父类决定实例的生成方式,但并不 ...
- 数字货币量化分析报告_20170905_P
[分析时间]2017-09-05 16:36:46 [数据来源]中国比特币 https://www.chbtc.com/ef4101d7dd4f1faf4af825035564dd81聚币网 http ...
- IIs7下配置php
因为一个朋友的服务器是window的需要两个版本的php,一个是现在用的php5.2,现在要用一个5.3的版本,所以考虑IIS下的配置. 1.首先当然是要下载一份php了,我采用的是免安装的,很方便, ...
- 华为交换机忘记console的密码,怎么恢复出厂设置
第一步:一般情况下由于密码忘记我们会被阻挡在交换机telnet远程管理界面之外. 第二步:虽然可以尝试console线连接交换机的控制接口,但是很多时候这个密码也被网络管理员进行了设置,不巧的是如果这 ...
- 剑指Offer——数据流中的中位数
题目描述: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. ...