当我在学习SSM框架的时候,先不谈Spring的一些核心开年,比如DI ,IOC,AOP等等,只是刚开始它的那些配置就让我觉得很头痛,在网上看了很多配置,但是很杂,而我自己在看了这些很杂的配置后,自己慢慢总结了配置,但也花了不少时间才真正的去弄懂它,不过这已经让我这个对设计思想一无所知的菜鸟来说, 我还不如直接new一个对象呢,虽然知道这种想法是很蠢,却足以说明我对Spring这些配置的头痛了,更不要说还要去整合mybaits的配置。显然,我这种菜鸟都能考虑到这点,Pivotal公司不可能考虑不到,所以出现了一种新的东西,SpringBoot,这对于我来说,简直就是Spring,当然,SpringBoot不是一种新的技术,只是一种自动整合了很多在开发中需要的配置,让我们这种菜鸟再也不要去为这些配置去烦心了(可能仅仅只是我)。
Spring官方提供SpringBoot的Eclipse插件去开发,不过,本人因为有一次使用Spring的插件觉得麻烦,就一直不想用着东西,所以还是用Eclipse原生的东西去学习。那么,我们开始快速的搭建一个SpringBoot的demo吧
首先,先看Maven的POM文件:
<project xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0
.
0
</modelVersion>
<groupId>com.sam.springboot</groupId>
<artifactId>springboot-demo-
02
</artifactId>
<version>
0.0
.
1
-SNAPSHOT</version>
<!-- https:
//mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<!-- springboot项目的父工程包 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>
1.4
.
0
.RELEASE</version>
</parent>
<!-- 指定UTF-
8
字符集和java
1.8
的编译 -->
<properties>
<project.bulid.sourceEncoding>UTF-
8
</project.bulid.sourceEncoding>
<project.reproting.outputEncoding>UTF-
8
</project.reproting.outputEncoding>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<!-- https:
//mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<!-- springboot 的web jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springboot 的test jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- springboot 的开发工具包 可选 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- springboot的打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<packaging>war</packaging>
</project>
官方建议springboot用gradle来管理jar,不过我一直用的Maven,所以就这么用吧,代码里面注释说的很清楚��我就不在解释,只是parent的这个可以还有一种方式 ,不过一般都用这种方式,另一种需要了解的可以去网上找。
然后我们建SpringBoot的程序入口
package com.sam.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); } }
这样就可以啦 ,我们运行的时候像平常运行main方法就行啦。注意注解@SpringBootApplication,这个注解开启自动配置,有兴趣可以点进里面去看下,它集合了几个注解,还有一点值得注意的是,这个入口类的位置必须得是在其他类上面的包上,因为他会有一个扫描的注解去扫描其他包。
然后我们在建一个Controller层:
最后我们启动会出现一个SpringBoot的标志。然后看日志后面,基本就启动成功了,访问我们的路径,就OK了,tomcat是嵌入式的,默认端口为8080,容易吧!是不是感觉比以前的配置好的多,不过如果你没有学spring基础的东西,那么springboot报 了错你也会一无所知。
@RestController
@RequestMapping
(
"/demo/"
)
public
class
DemoController {
@Value
(value=
"${sam.secret}"
)
private
String secret;
@Value
(value=
"${sam.number}"
)
private
Integer number;
@RequestMapping
()
public
String demo() {
return
"Hello SpringBoot!"
;
}
@RequestMapping
(
"name"
)
public
Map<String, String> sayHello(
@RequestParam
(
"name"
) String name) {
Map<String, String> map =
new
HashMap<>();
map.put(
"name"
, name);
map.put(
"value"
,
"Hello "
+name);
map.put(
"secret"
, secret);
map.put(
"number"
, number.toString());
System.out.println(number);
return
map;
}
一、SpringBoot的默认文件appliction
上面已经说明,springboot启动会内嵌tomcat,端口也是默认的8080,如果我们想要改变端口如果做呢?
在springboot项目中会有一个默认的配置文件appliction,在类路径下,后缀有两种,一种是常见的properties,另一种是spring官方推荐使用的yaml格式,因为本人习惯于使用properties的,所以yml不做介绍,只是有一些书写格式的区别,并无太大差别。回到上面,想要修改端口的配置,只需在application.properties文件里,写上server.port=8010即可,
server.port=8010
这样启动项目那么访问的端口也就变成了8010,当然,他不仅仅只限于配置这么一些,springboot基本整合了很多配置,我们需要配置自己的个性化设置通常只需在此配置文件中写入响应的配置即可,包括数据源,redis等等,而此规范,spring提供文档,大家需要什么配置只需参考spring提供的文档即可。
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot
当然,在实际开发中,我们可能会有一些自己的配置i,我们可以通过@PropertySource注解读取文件 ,不过不支持yaml的文件。
在此配置文件中也是支持占位符的,如下:
sam.one=com.sam sam.tow=${sam.one}.springboot
二、多环境配置
springboot还提供一种多环境配置,然你的配置可以在开发,生成,测试中自由切换,减少了不必要的错误。
一般都是在类路径下,新建三个properties文件,application-test , application-pro, application-dev,然后在核心配置application中如下配置
spring.profiles.active=test
代码中指定是的test测试环境下,这样就实现了springboot的多环境配置,springboot会优先去选择加载选择环境中的配置,然后才会去加载这样环境中在application中不存在的配置。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-12/149697.htm