使用springboot微服务开发项目
在主流框架中spring正如它的名字一样,绝对是一棵长春树,一直挺拔着,而且越来越强大,springboot 和 spring cloud正变得越来越流行。最近项目很多都是使用springboot开发,自己搭建项目也越来越倾向使用springboot。springboot是spring的一个升级,使用springboot可以大量减少配置,甚至连web.xml都可以不要了,真是用的不要太爽。这里对springboot的使用先做一个总结,后面再找个机会研究下spring cloud。
springboot提供了四个主要的特性,能够改变开发spring应用程序的方式:
1.Spring Boot Starter:它将常用的依赖分组进行整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;
减少了构建中依赖列表的长度,这里主要利用了依赖的传递性。
2.自动配置:利用了spring4对条件化配置的支持,合理地推测应用所需的bean并自动化配置它们。
削减了Spring配置的数量
3.命令行接口
4.Actuator:它为SpringBoot应用添加了一定的管理特性。
下面的demo主要使用springboot开发web应用,以及使用JavaConfig装配bean。
将SpringMVC作为依赖添加到构建中,只需要在maven中添加如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
项目结构如下
需要注意1.controller要与启动类Application在同一个包或者在启动类所在包的子包中;
2.controller与启动类不在同一个包并且不在启动类所在包的子包中,在Application中添加注解
@ComponentScan(basePackages={"com.imusic.springbootdemo.config22.controller"})
3.添加视图层
使用模板如freemarker,只需要将freemarker添加到资源目录的templates中,springboot会探测到freemarker,然后会自动配置视图解析器、模板解析器、模板引擎。需要添加如下简单配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
===================================================
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
# \u6570\u5B57\u4E0D\u81EA\u52A8\u683C\u5F0F\u5316
spring.freemarker.settings.number_format=0.#
# request\u5BF9\u8C61\u547D\u540D
spring.freemarker.request-context-attribute=request
# \u5C06request\u4E0B\u7684\u6240\u6709\u5BF9\u8C61\u5408\u5E76\u5230Model
spring.freemarker.expose-request-attributes=true
# \u5C06session\u4E0B\u7684\u6240\u6709\u5BF9\u8C61\u5408\u5E76\u5230Model
spring.freemarker.expose-session-attributes=false
4.添加静态内容
当采用SpringBoot的web自动配置来定义SpringMVC bean是,这些bean中会包含一个资源处理器(resource handler),他会将“/**”映射到几个资源路径中。这些资源路径包括(相对于类路径的根)
/META-INF/resources
/resources/
/static/
/public/
5.值得一提的是你并不是一定要使用maven打包生成WAR,即使是Jar也是可以的,因为我们实则通过执行启动类Application的main函数就能启动项目。执行如下命令
java -jar .../*.jar
如果需要将web应用作为war文件部署,只需要将packaging从“jar”替换为“war”
<packaging>war</packaging>
另外,我们依然可以在命令行中运行这个应用
java -jar .../*.war