什么是spring boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开拓进程。该框架利用了特定的方法来举办设置,从而使开拓人员不再需要界说样板化的设置。用我的话来领略,就是spring boot其实不是什么新的框架,它默认设置了许多框架的利用方法,软件开发,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否符合)。
利用spring boot有什么长处
其实就是简朴、快速、利便!平时假如我们需要搭建一个spring web项目标时候需要怎么做呢?
1)设置web.xml,加载spring和spring mvc
2)设置数据库毗连、设置spring事务
3)设置加载设置文件的读取,软件开发,开启注解
4)设置日志文件
…
设置完成之后陈设tomcat 调试
…
此刻很是风行微处事,假如我这个项目仅仅只是需要发送一个邮件,假如我的项目仅仅是出产一个积分;我都需要这样折腾一遍!
可是假如利用spring boot呢?
很简朴,我仅仅只需要很是少的几个设置就可以迅速利便的搭建起来一套web项目可能是构建一个微处事!
快速入门
说了那么多,手痒痒的很,顿时来一发试试!
maven构建项目
1、会见http://start.spring.io/
2、选择构建东西Maven Project、Spring Boot版本1.3.6以及一些工程根基信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:
3、点击Generate Project下载项目压缩包
4、解压后,利用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!
项目布局先容
如上图所示,Spring Boot的基本布局共三个文件:
别的,spingboot发起的目次功效如下:
root package布局:com.example.myproject
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- controller | +- CustomerController.java |
1、Application.java 发起放到根目次下面,主要用于做一些框架设置
2、domain目次主要用于实体(Entity)与数据会见层(Repository)
3、service 层主要是业务类代码
4、controller 认真页面会见节制
回收默认设置可以省去许多设置,虽然也可以按照本身的喜欢来举办变动
最后,启动Application main要领,至此一个java项目搭建好了!
引入web模块
1、pom.xml中添加支持web的模块:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
pom.xml文件中默认有两个模块:
spring-boot-starter :焦点模块,包罗自动设置支持、日志和YAML;
spring-boot-starter-test :测试模块,包罗JUnit、Hamcrest、Mockito。
2、编写controller内容:
@RestController public class HelloWorldController { @RequestMapping("/hello") public String index() { return "Hello World"; } }
@RestController 的意思就是controller内里的要领都以json名目输出,不消再写什么jackjson设置的了!
3、启动主措施,打开欣赏器会见http://localhost:8080/hello,就可以看到结果了,有木有很简朴!
如何做单位测试
打开的src/test/下的测试进口,编写简朴的http请求来测试;利用mockmvc举办,劳务派遣管理系统,操作MockMvcResultHandlers.print()打印出执行功效。
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = MockServletContext.class) @WebAppConfiguration public class HelloWorldControlerTests { private MockMvc mvc; @Before public void setUp() throws Exception { mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build(); } @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); } }
开拓情况的调试