1.什么是sprint boot
由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建和开发过程。该框架使用了特定的方式配置,从而使开发人员不再需要定义样板化的配置。(sprint boot其实不是什么新框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,springboot整合了所有的框架。)
spring由于复杂配置,各种xml,annotation注解等,繁杂出错也很难定位,sprintboot就是为了解决繁杂和最大化事先convention over configuraion(约定大于配置)
特性:
1.chaungjainduli的spring应用程序;
2.嵌入式Tomcat,Jetty等容器,不许不是war包
3.简化maven和gradle配置
4.尽可能自动化配置spring
5.直接植入产品环境下的实用功能,度量指标、健康检查和扩展配置。
6.无需代码生成及XML配置
2.优点:简单方便快捷
1.纯JAVA的配置方式,很简单,很方便
2.配合各种starter使用,基本上可以做到自动化配置
3.配合Maven或Gradle等构件工具打成Jar包后,Java -jar 进行部署运单
缺点
1..自动化配置导致有些不适用于自己所想,就要到javaconfig文家中覆盖原有的默认配置2想深入了解springboot需要多了解相关文档和源码
一个传统的应用springweb启动:
1.配置web.xml,加载spring和springMVC
2.配置数据库连接,配置spring事务
3.配置加载配置文件的读取,开启注解
4.配置日志文件
配置完成后tomcat部署启动
对于现在非常流行的微服务来说,这样来回折腾耗费大量的时间精力再重复工作中。
springboot用很少的时间和精力,简单的配置就可以迅速搭建起来一套web项目和构建一个微服务。
spring boot项目结构:
com
-project
--Application.java
-domain
--User.java
--UserDao.java
-service
--UserService.java
-controller
--UserController.java
1.Application.java 存放在项目根目录下,配置框架,main方法
2.domain存放实体和数据访问层
3.service层业务层
4.controller控制层
pom.xml文件:
1.添加web模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml默认有两个默认的模块:
spring-boot-starter:核心模块,包括自动配置支持,日志和YAML
spring-boot-starter-test:测试模块,Jnuit,Hamcrest,MockIto
spring-boot-starter-web为我们提供了最基础的嵌入的Tomcat和SpringMVC依赖,此外还有模板引擎,比如FreeMarker, Groovy, Thymeleaf. Velocity和Mustache。推荐使用Thymeleaf,在使用过程中,通过ThymeleafAutoConfiguration类对继承所需要的bean进行配置
除了最基础的web简化封装,还提供一系列的以来报将其他一些工作做成开箱即用。
spring-boot-starter-web:web开发,tomcat,springMVC和模板引擎
spring-boot-starter-mail:javax.main支持;
spring-boot-starter-ws:webservice
spring-boot-starter-test:测试用例
spring-boot-starter-actuator:产品环境下功能,健康检查,指标度量等
spring-boot-starter-jetty:(tomcat)内嵌容器;
spring-boot-starter-log4j:logback日志框架
2.编写controller内容:
@RestController
public class HelloController{
@RequestMapping(/hello)
public String index(){
return "hello";
}
}
@RestController的意义就是controller里面的方法都是json格式输出,不用配置json输出格式。
3.单元测试
打开src/test 测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印执行结果。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class HelloControllerTest{
private MockMvc mvc
@Before
public void setUp throws Exception{
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void testHello() throws Exception{
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON).andExpect( MockMvcResultMatches.status().isOK()).andDo(MockMvcHandlers.print()).andReturn();
}
}
使用sprintboot可以非常方便、快速的搭建项目,是我们不用关心框架之间的兼容性和试用版本问题,使用任何东西只需要加一个配置就可以。