第一讲我们已经讲解了入门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. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流

    [BZOJ2095][Poi2010]Bridges Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个 ...

  2. 【BZOJ4819】[Sdoi2017]新生舞会 01分数规划+费用流

    [BZOJ4819][Sdoi2017]新生舞会 Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女 ...

  3. PHP 开发环境的搭建和使用02--整合让apache处理php

    PHP5.3.5直接下载解压即可.但是怎样才能让apache处理php呢? 1/  在apache 的conf目录下 的 httpd.conf(用于指定apache的设置)加入如下代码:   Load ...

  4. LeetCode 笔记系列16.2 Minimum Window Substring [从O(N*M), O(NlogM)到O(N),人生就是一场不停的战斗]

    题目:Given a string S and a string T, find the minimum window in S which will contain all the characte ...

  5. 获取 js DOM元素中绑定的所有事件,模仿 chrome getEventListeners

    偶尔看到了这个问题,如何用JS获取元素某一事件上绑定的所有Listener? 突然觉得好像是有解决办法的,查了下,在 chrome 下,支持 window.getEventListeners(obj) ...

  6. Hadoop伪分布安装详解(五)

    目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...

  7. mysql状态分析之show global status

    这里整理下mysql global status的相关命令,在计算监控数据的时候需要用到 一.慢查询 show variables like '%slow%'; +------------------ ...

  8. C# DataTable和DataRelation

    form2.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...

  9. C# 使用KingAOP面向切面编程

    1. 在Nuget中安装KingAOP 2. 日志DEMO public class Test : IDynamicMetaObjectProvider { [LogAspec] public voi ...

  10. DK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%。

    NIO的epoll空轮询bug - Lost blog - 博客园 https://www.cnblogs.com/JAYIT/p/8241634.html NIO的epoll空轮询bug   JDK ...