一、SpringBoot启动的3种方式

  第一种:借助IDE工具直接启动  run as

  第二种:mvn命令启动

    1:打开命令行,进入到项目目录中(我这里还是用上次建立的dog项目来操作)cd E:\Workspaces\Idea\dog  

    2:mvn spring-boot:run

  第三种:使用jar文件启动

    1:在项目目录下(即E:\Workspaces\Idea\dog)编译项目

      mvn install

    2:进入target目录下

      cd target/

    3:查看当前路径下的所有文件和目录

      dir ./

    4:找到项目对应的jar文件,我这里是 dog-0.0.1-SNAPSHOT.jar

      然后运行java命令:

      java -jar java -jar dog-0.0.1-SNAPSHOT.jar

二、SpringBoot的配置文件

  1、properties还是yml

  默认帮我们生成了resources目录,我们的配置文件基本上在这个目录下完善

  目录下还默认提供了一个application.properties文件,我们可以在其中配置访问端口和路径

server.port=8081
server.servlet.context-path=/dog

    这里修改了默认端口为8081,并且修改了访问路径。所以我们不能再使用原来的 http://127.0.0.1:8080/hello

  来打招呼了,需要使用新的访问地址  http://127.0.0.1:8081/dog/hello

  在SpringBoot种还提供了另外一种简便的写法,就是yml文件

server:
port: 8082
servlet:
context-path: /dog

  注意冒号后面需要有一个空格,来和配置的内容隔开

  2、多环境配置

    加入2个yml文件,分别配置不同的访问端口,和不同的访问路径

    新建开发环境的配置:application-dev.yml文件 

server:
port: 8083
servlet:
context-path: /dev

    新建生产环境的配置:application-pro.yml文件

server:
port: 8084
servlet:
context-path: /pro

   修改application.yml文件  指定所要使用的环境的配置,这里我们指向开发环境

spring:
profiles:
active: dev

  注意:这里的前缀换成了spring,已经不再是server,访问使用 http://127.0.0.1:8083/dev/hello

  3、多环境同时启动

    这里使用上面介绍的第三种启动方式 :java -jar的方式来启动

    使用启动命令时只需要加一些参数,就可以轻松指定我们要使用的配置环境

    第一步:启动前先编译 mvn (因为我们改动过项目了,不能再使用原来的jar文件启动)

    第二步:java -jar dog-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

    第三步:新打开一个命令行窗口,进入项目的target目录下,执行java -jar命令

        java -jar dog-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro

    第四步:测试 http://127.0.0.1:8083/dev/hello  http://127.0.0.1:8084/pro/hello都能访问即成功

  4、其他配置

    a.项目中读取配置中的某些无关的值

      这里我们在dev环境中进行操作,在application-dev.yml文件中加入一些需要读取的值

      

      然后在前台拉取,这里使用@Value注解来拉取

      

    前端成功展示

      

   b.配置中使用配置

    yml文件中使用EL表达式

      

    controller中还是使用@Value拉取

      

  c.相关的属性,可以封转成对象

    第一步:在pom.xml中加入依赖

        <!--configuration的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

    第二步:新建一个用来封装属性的方法,提供getter、setter方法,并且重写toString()方法

    

package com.zmfx.hello;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; @Component //由于后面自动装配@Autowired时能扫描到此类
@ConfigurationProperties(prefix = "dev")//指明了配置文件中前缀为 dev封装成对象
public class Developer {
private String name;//姓名
private Integer age;//年龄
private Integer id;//编号 public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} @Override
public String toString() {
return "Developer{" +
"name='" + name + '\'' +
", age=" + age +
", id=" + id +
'}';
}
}

    第三步:在yml文件中添加属性,我这里还是在开发环境application-dev.yml中添加

server:
port: 8083
servlet:
context-path: /dev
pageSize: 20
devName: 紫陌飞雪 content: "pageSize:${pageSize},devName:${devName}" dev:
name: 紫陌飞雪
age: 26
id: 365

    第四步:编写controller中的控制代码、新加属性和方法

  

//属性封装到对象中提取
@Autowired
private Developer developer;
@RequestMapping(value = "/developer",method = RequestMethod.GET)
public String showDeveloper(){
return developer.toString();
}

    第五步:在浏览器中输入  http://127.0.0.1:8083/dev/developer 进行测试

三、SpringBoot模板(template)的使用

  首先来介绍一下@RestController

    它相当于  @Controller+@ResponseBody的简写。

    @ResponseBody的作用时把返回值回显到页面,默认解析成Json格式。不会走视图解析器

    如果把@RestController换成@Controller,页面会报500,提示你检查视图解析器。

  SpringBoot官方为我们提供了页面显示的模板 thymeleaf

  第一步:加入pom.xml的依赖

     <!--模板的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

  第二步:在templates下编写一个 index.html页面

  

<h1>Hello SpringBoot!</h1>

  第三步:编写controller层的代码

//templates的展示
@RequestMapping(value = {"/t","/temp","/template"} ,method = RequestMethod.GET)
public String showIndexHtml(){
return "index";
}

  第四步:访问   http://127.0.0.1:8083/dev/t

            http://127.0.0.1:8083/dev/temp

          http://127.0.0.1:8083/dev/template

我们发现它的映射规则和在SpringMVC没什么太大区别,只是不用自己去配置视图解析器了

SpringBoot入门(IDEA篇)(二)的更多相关文章

  1. SpringBoot 入门实战篇

    SpringBoot入门 使用SpringBoot + mysql + Jpa 快速搭建一个spring项目 Spring Boot 2 + Spring Data JPA + MySQL 8 簡單範 ...

  2. SpringBoot入门学习(二)

    第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容 项目内一些属性配置 自定义属性配置 ConfigurationProperties配置 (1)第一个工程创建的时候会自动在工程下创建a ...

  3. ①SpringBoot入门教学篇

    一.什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...

  4. SpringBoot入门系列(二)如何返回统一的数据格式

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...

  5. springboot入门系列(二):SpringBoot整合Swagger

    上一篇<简单搭建SpringBoot项目>讲了简单的搭建SpringBoot 项目,而 SpringBoot 和 Swagger-ui 搭配在持续交付的前后端开发中意义重大,Swagger ...

  6. SpringBoot入门教程(十二)DevTools热部署

    devtools模块,是为开发者服务的一个模块.主要的功能就是代码修改后一般在5秒之内就会自动重新加载至服务器,相当于restart成功.与JRebel不同的是,JRebel是一款商业插件,devto ...

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

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

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

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

  9. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  10. 源码学习系列之SpringBoot自动配置(篇二)

    源码学习系列之SpringBoot自动配置(篇二)之HttpEncodingAutoConfiguration 源码分析 继上一篇博客源码学习系列之SpringBoot自动配置(篇一)之后,本博客继续 ...

随机推荐

  1. code3728 联合权值

    一开始暴搜,超时3个点... 后来看了题解: 首先,两个点的距离为2当且仅当它们都与一个点直接相连 反过来说,一个点所有的出边的终点都是互相距离2的(最大值可以依靠这个方法,前向星处理的时候将每个点的 ...

  2. 没有Reduce的MapReduce(一)

    尝试了一个没有Reduce的MapReduce. [应用场景]: 从Hbase的A表中进行数据抽样,直接输出到B表中. 这种场景下,相当于只进行了一个数据检索,本来是用Hive就可以实现,但是考虑到业 ...

  3. ORACLE 异机恢复

    有时候需要将大的数据库发布到客户现场或转移机器时,不得不考虑在异机上恢复已经调整.测试好的库. dumpdp 全备的方法虽然易用,但在处理对象.索引.空间的时候异常的出错,比如:见有些公司,建表.索引 ...

  4. JS中立即执行函数的理解

    1.匿名函数不能单独定义,必须进行赋值操作或者立即执行,否则会被JS引擎定义为语法错误 function(){alert(dada);} VM229:1 Uncaught SyntaxError: U ...

  5. LinqPad介绍,下载,用法说明

    介绍一款用于Linq运算和测试的工具,LinqPad.我感觉这个工具非常优秀,不只是功能上优秀,在使用上也非常优秀,让我爱不释手. LinqPad官方地址:http://www.linqpad.net ...

  6. 使用火蜘蛛采集器Firespider采集天猫商品数据并上传到微店

    有很多朋友都需要把天猫的商品迁移到微店上去.可在天猫上的商品数据非常复杂,淘宝开放接口禁止向外提供数据,一般的采集器对ajax数据采集的支持又不太好. 还有现在有了火蜘蛛采集器,经过一定的配置,终于把 ...

  7. NetBeans找不到C/C++编译器

    如果您已经安装 NetBeans IDE 6.9,但其中不包括 C/C++ 插件 如果在选择“文件”>“新建项目”时,NetBeans IDE 未显示 "C/C++" 项目类 ...

  8. 设计模式8---适配器模式(Adapter)

    1. 适配器模式简介 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适用场景: 1.已经存在 ...

  9. SVN版本控制服务

    1>Subversion版本控制简介: Subversion(SVN)是一款自由开放的版本控制软件,可以管理文件,文件夹以及记录他们的修改状况,常用来帮助我们管理软件开发的源代码或是公司手册文档 ...

  10. js链式调用

    我们都很熟悉jQuery了,只能jQuery中一种非常牛逼的写法叫链式操作 * $('#div').css('background','#ccc').removeClass('box').stop() ...