第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容

  1. 项目内一些属性配置
  2. 自定义属性配置
  3. 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入门学习(二)的更多相关文章

  1. ReactJS入门学习二

    ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...

  2. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  3. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  4. SpringBoot入门(二)——起步依赖

    本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...

  5. git入门学习(二):新建分支/上传代码/删除分支

    一.git新建分支,上传代码到新的不同分支  我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...

  6. 【Java】SpringBoot入门学习及基本使用

    SpringBoot入门及基本使用 SpringBoot的介绍我就不多说了,核心的就是"约定大于配置",接下来直接上干货吧! 本文的实例: github-LPCloud,欢迎sta ...

  7. SpringBoot入门学习看这一篇就够了

    1.SpringBoot是什么? SpringBoot是一套基于Spring框架的微服务框架. 2.为什么需要SpringBoot 由于Spring是一个轻量级的企业开发框架,主要的功能就是用于整合和 ...

  8. Egg入门学习(二)---理解service作用

    在上一篇文章 Egg入门学习一 中,我们简单的了解了Egg是什么东西,且能做什么,这篇文章我们首先来看看官网对Egg的整个框架的约定如下,及约定对应的目录是做什么的,来有个简单的理解,注意:我也是按照 ...

  9. SpringBoot入门学习(一)

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我 ...

随机推荐

  1. JQuery------实现鼠标点击和滑动不同效果

    如图: 代码: html <ul class="price-brand-right"> @foreach (Brand item in ViewBag.Brand) { ...

  2. 最受欢迎的五大BUG管理系统

    五大最受欢迎的BUG管理系统    Google在中国大*陆遭遇变故做出暂时性的退出大*陆市场,也使很多忠实的用户受到小小的挫折,以本公司为例,原本的BUG都是记录在google的EXCEL在线文档中 ...

  3. java基础---->Java中异常的使用(二)

    这一篇博客用例子讲述一下异常的处理过程.那些 我们一直惴惴不安 又充满好奇的未来 会在心里隐隐约约地觉得它们是明亮的. 异常的执行过程 一.实例一:return语句 public class Exce ...

  4. pure

    Pure也是一款很出色的CSS框架,之前分享的Bootstrap是由Twitter出品的,而Pure是来自雅虎的.尽管从UI界面效果上来说,Pure没有Bootstrap那样精美,但Pure是纯CSS ...

  5. 【BZOJ4873】[Shoi2017]寿司餐厅 最大权闭合图

    [BZOJ4873][Shoi2017]寿司餐厅 Description Kiana最近喜欢到一家非常美味的寿司餐厅用餐.每天晚上,这家餐厅都会按顺序提供n种寿司,第i种寿司有一个代号ai和美味度di ...

  6. 设计模式之Factory工厂模式

    在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理.如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式. 在Factory模式中,父类决定实例的生成方式,但并不 ...

  7. 数字货币量化分析报告_20170905_P

    [分析时间]2017-09-05 16:36:46 [数据来源]中国比特币 https://www.chbtc.com/ef4101d7dd4f1faf4af825035564dd81聚币网 http ...

  8. IIs7下配置php

    因为一个朋友的服务器是window的需要两个版本的php,一个是现在用的php5.2,现在要用一个5.3的版本,所以考虑IIS下的配置. 1.首先当然是要下载一份php了,我采用的是免安装的,很方便, ...

  9. 华为交换机忘记console的密码,怎么恢复出厂设置

    第一步:一般情况下由于密码忘记我们会被阻挡在交换机telnet远程管理界面之外. 第二步:虽然可以尝试console线连接交换机的控制接口,但是很多时候这个密码也被网络管理员进行了设置,不巧的是如果这 ...

  10. 剑指Offer——数据流中的中位数

    题目描述: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. ...