SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置

要在Eclipse里使用SpringBoot,首先要安装下STS插件

注意:STS插件运行必须是JDK1.8 否则会出现安装失败的情况;

创建SpringBoot项目创建SpringBoot项目pom.xml文件第一行报错:Non-parseable POM 

或者run as 没有Spring Boot App-->解决方法

参考-->配置STS插件两种方法

插件安装完毕,然后我们来新建一个SpringBoot项目

新建 选择 Spring Boot->Spring Starter Project

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第1张图片

点击“Next”,显示

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第2张图片

到了配置依赖的界面,暂时不需要用到其他的,仅选择一个Web依赖即可

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第3张图片

然后点击Finish完成。

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第4张图片

HelloWorldApplication是启动类,我们右击Run As 选择 Spring Boot app

我们浏览器输入:http://localhost:8080/

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第5张图片

出现这个 说明项目启动成功;

我们现在配置一个HelloWorld请求

在com.exmple.demo包下,新建一个HelloWorldController类

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
 
    @RequestMapping("/HelloWorld")
    public String say(){
        return "HelloWorld";
    }
}

然后我们重新启动HelloWorldApplication类

请求 http://localhost:8080/HelloWorld

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第6张图片

我们一个简单的Spring Boot工程已经创建出来了,并且成功的从浏览器中访问到了.

热部署

当我们修改文件和创建文件时,都需要重新启动项目。这样频繁的操作很浪费时间,配置热部署可以让项目自动加载变化的文件,省去的手动操作。

在 pom.xml 文件中添加如下配置:


		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-starter-tomcat
			provided
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
		
		    org.springframework.boot
		    spring-boot-devtools
		    true
		    true
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
                
				
                	true
            	
			
		
	

image

定制Banner

修改Banner

我们在启动Spring Boot项目的时候,在控制台会默认输出一个启动图案,如下

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第7张图片

当然,这个图案如果你需要的话是可以自己修改的,修改方式很简单:

1.在src/main/resources下新建一个banner.txt文档 
2.通过点击网站生成需要的字符,将字符拷贝到步骤1所创建的txt文档中,比如我这里为springboot生成字符,如下:

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第8张图片

来个霸气的直接复制到banner.txt即可:

                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    	   佛祖保佑             永无BUG

点击Select&Copy按钮,将这个字符拷贝到txt文档中,然后再启动项目,这个时候控制台输出的文本就会自动改变,如下:

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第9张图片

Spring Boot的配置文件

Spring Boot使用一个全局的配置文件application.properties或者application.yml,配置文件放在src/main/resources目录下。properties是我们常见的一种配置文件,Spring Boot不仅支持properties这种类型的配置文件,也支持yaml语言的配置文件,我这里以properties类型的配置文件为例来看几个案例。

1.修改Tomcat默认端口和默认访问路径

Tomcat默认端口是8080,我将之改为8081,默认访问路径是http://localhost:8080,我将之改为http://localhost:8081/hello,我们来看看这两个需求要怎么样通过简单的配置来实现。 
很简单,在application.properties文件中添加如下代码:

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

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第10张图片

常规属性配置

如果我们使用了Spring Boot,这项工作将会变得更加简单,我们只需要在application.properties中定义属性,然后在代码中直接使用@Value注入即可。 
如下:

book.author=罗贯中

book.name=三国演义

book.pinyin=sanguoyanyi

我这里专门设置了中文,因为中文不做特殊处理会乱码,处理方式为继续在application.properties中添加如下代码:

server.tomcat.uri-encoding=UTF-8
 
spring.http.encoding.charset=UTF-8
 
spring.http.encoding.enabled=true
 
spring.http.encoding.force=true
 
spring.messages.encoding=UTF-8

然后在eclipse中右击项目->Properties->Resource->Other,将编码各式设为“UTF-8”

然后在变量中通过@Value直接注入就行了,如下:

@RestController
public class HelloWorldController {
 
    /*@RequestMapping("/HelloWorld")
    public String say(){
        return "HelloWorld";
    }
    @RequestMapping("/HelloWorld2")
    public String say2(){
    	return "HelloWorld2";
    }*/
	@Value(value = "${book.author}")
	private String bookAuthor; 
	@Value("${book.name}")
	private String bookName; 
	@Value("${book.pinyin}")
	private String bookPinYin;
	//修改index方法,使之返回这些值:
	@RequestMapping(value = "/",produces = "text/plain;charset=UTF-8")
	public String index(){
	return"Hello Spring Boot! The BookName is "+bookName+";and Book Author is "+bookAuthor+";and Book PinYin is "+bookPinYin;
	}

}

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第11张图片

类型安全的配置

刚刚说的这种方式我们在实际项目中使用的时候工作量略大,因为每个项目要注入的变量的值太多了,这种时候我们可以使用基于类型安全的配置方式,

就是将properties属性和一个Bean关联在一起,这样使用起来会更加方便。

1.创建新的配置文件books.properties然后定义属性直接复制application.properties修改名称

books.name=红楼梦

books.author=曹雪芹

books.price=28

server.tomcat.uri-encoding=UTF-8
 
spring.http.encoding.charset=UTF-8
 
spring.http.encoding.enabled=true
 
spring.http.encoding.force=true
 
spring.messages.encoding=UTF-8

books.name=\u7EA2\u697C\u68A6
books.author=\u66F9\u96EA\u82B9
books.price=28

2.在com.example.demo下创建BookBean实体类,并注入properties文件中的值

@Component注解目的是为了这个JavaBean可以被SpringBoot项目启动时候被扫描到并加载到Spring容器之中,

@PropertySource这个注解专门用来加载指定位置的properties文件

@ConfigurationProperties绑定专用注解它的作用就是将指定前缀配置项的值与JavaBean的字段绑定prefix是指前缀

代码如下:

package com.example.demo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
@PropertySource("classpath:books.properties")
@ConfigurationProperties(prefix = "books")
public class BookBean {
	private String name; 
	private String author; 
	private String price;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public String getPrice() {
		return price;
	}
	public void setPrice(String price) {
		this.price = price;
	} 
	
}

3.添加路径映射

在Controller中添加如下代码注入Bean:

@Autowired
	private BookBean bookBean;
	
	@RequestMapping("/books")
	public String book() { 
	return"Hello Spring Boot! The BookName is "+bookBean.getName()+";and Book Author is "+bookBean.getAuthor()+";and Book price is "
	+bookBean.getPrice();
	}

运行效果如下:

SpringBoot(二)--Eclipse创建SpringBoot项目之HelloWorld热部署全局Profile配置常规属性配置_第12张图片

全局Profile配置多环境切换

application.properties 是 springboot 在运行中所需要的配置信息。

全局Profile配置我们使用application-{profile}.properties来定义,然后在application.properties中通过spring.profiles.active来指定使用哪个Profile

当我们在开发阶段,使用自己的机器开发,测试的时候需要用的测试服务器测试,上线时使用正式环境的服务器。

这三种环境需要的配置信息都不一样,当我们切换环境运行项目时,需要手动的修改多出配置信息,非常容易出错。

为了解决上述问题,springboot 提供多环境配置的机制,让开发者非常容易的根据需求而切换不同的配置环境。

在 src/main/resources 目录下创建三个配置文件:

application-dev.properties:用于开发环境
application-test.properties:用于测试环境
application-prod.properties:用于生产环境

内容分别为

server.port=8080
server.port=8081
server.port=8082

我们可以在这个三个配置文件中设置不同的信息,application.properties 配置公共的信息。

在 application.properties 中配置:

spring.profiles.active=dev

#spring.profiles.active=test

#spring.profiles.active=prod

演示如下: 

image

你可能感兴趣的:(SpringBoot)