sprint boot

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可以非常方便、快速的搭建项目,是我们不用关心框架之间的兼容性和试用版本问题,使用任何东西只需要加一个配置就可以。

猜你喜欢

转载自flycw.iteye.com/blog/2393994
今日推荐