快捷搜索: 王者荣耀 脱发

使用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 # u6570u5B57u4E0Du81EAu52A8u683Cu5F0Fu5316 spring.freemarker.settings.number_format=0.# # requestu5BF9u8C61u547Du540D spring.freemarker.request-context-attribute=request # u5C06requestu4E0Bu7684u6240u6709u5BF9u8C61u5408u5E76u5230Model spring.freemarker.expose-request-attributes=true # u5C06sessionu4E0Bu7684u6240u6709u5BF9u8C61u5408u5E76u5230Model

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


经验分享 程序员 微信小程序 职场和发展