[置顶] Spring boot 入门helloWorld
2017-04-05 15:29
232 查看
构建微服务:Spring boot 入门篇
Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。
简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题
Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。
1)配置web.xml,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件
…
配置完成之后部署tomcat 调试
…
现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!
但是如果使用spring boot呢?
很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!
如果不熟悉maven,请先了解一下。
② pom中parent设为 spring-boot-starter-parent 。建议使用最新的 RELEASE 版本。否则可能需要设置 和 。
③ 添加应用需要的starter模块,作为示例,我们仅添加web starter模块。
这里需要解释下starter模块,简单的说,就是一系列的依赖包组合。例如web starter模块,就是包含了Spring Boot预定义的一些Web开发的常用依赖:
换句话说,当你添加了相应的starter模块,就相当于添加了相应的所有必须的依赖包。
starter模块的列表及含义,百度 Spring Boot的启动器Starter详解
至此,pom内容如下:
保存pom,刷新maven,以便刷新依赖导入。
基本上,如果没有特别的需要,现在就可以直接写Controller了!!!–特别的需要 是指设置容器、访问端口、路径等
④ 写一个简单的Controller
这里有两个新东西:@EnableAutoConfiguration 和 SpringApplication 。
@EnableAutoConfiguration 用于自动配置。简单的说,它会根据你的pom配置(实际上应该是根据具体的依赖)来判断这是一个什么应用,并创建相应的环境。
在上面这个例子中,@EnableAutoConfiguration 会判断出这是一个web应用,所以会创建相应的web环境。
SpringApplication 则是用于从main方法启动Spring应用的类。默认,它会执行以下步骤:
1 创建一个合适的ApplicationContext实例 (取决于classpath)。
2 注册一个CommandLinePropertySource,以便将命令行参数作为Spring properties。
3刷新application context,加载所有单例beans。
4 激活所有CommandLineRunner beans。
默认,直接使用SpringApplication 的静态方法run()即可。但也可以创建实例,并自行配置需要的设置。
默认访问地址: http://localhost:8080/
按照之前的web项目习惯,你可能会问,怎么没有项目路径?
这就是Spring Boot的默认设置了,将项目路径直接设为根路径。
当然,我们也可以设置自己的项目路径 – 在classpath下的 application.properties 或者 application.yaml 文件中设置即可。
2、选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示:
![](https://img-blog.csdn.net/20170405152443775?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU5Njk3NTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3、点击Generate Project下载项目压缩包
4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!
项目结构介绍
![](https://img-blog.csdn.net/20170405152553391?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU5Njk3NTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Spring Boot的基础结构共三个文件:
l src/main/java 程序开发以及主程序入口
l src/main/resources 配置文件
l src/test/java 测试程序
另外,spingboot建议的目录结果如下:
root package结构:com.example.myproject
1、Application.java 建议放到跟目录下面,主要用于做一些框架配置
2、domain目录主要用于实体(Entity)与数据访问层(Repository)
3、service 层主要是业务类代码
4、controller 负责页面访问控制
采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动Application main方法,至此一个java项目搭建好了!
引入web模块
1、pom.xml中添加支持web的 org.springframework.boot spring-boot-starter-web .xml文件中默认有两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;
spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。
2、编写controller内容
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!
3、启动主程序,打开浏览器访问http://localhost:8080,就可以看到效果了
开发环境的调试
热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:
该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。
总结
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。
1,什么是spring boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架。Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。
简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题
Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。
2,使用spring boot有什么好处
其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?1)配置web.xml,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件
…
配置完成之后部署tomcat 调试
…
现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!
但是如果使用spring boot呢?
很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!
3,快速入门
说了那么多,手痒痒的很,马上来一发试试!3.1前提
Spring Boot提供了一系列的依赖包,所以需要构建工具的支持:maven 或 gradle。个人仅熟悉maven,所以下面的内容都是maven相关的。如果不熟悉maven,请先了解一下。
3.2使用
(1)通过maven构建一个Spring boot 项目
① 新建一个maven项目。② pom中parent设为 spring-boot-starter-parent 。建议使用最新的 RELEASE 版本。否则可能需要设置 和 。
③ 添加应用需要的starter模块,作为示例,我们仅添加web starter模块。
这里需要解释下starter模块,简单的说,就是一系列的依赖包组合。例如web starter模块,就是包含了Spring Boot预定义的一些Web开发的常用依赖:
○ spring-web, spring-webmvc Spring WebMvc框架 ○ tomcat-embed-* 内嵌Tomcat容器 ○ jackson 处理json数据 ○ spring-* Spring框架 ○ spring-boot-autoconfigure d612 Spring Boot提供的自动配置功能
换句话说,当你添加了相应的starter模块,就相当于添加了相应的所有必须的依赖包。
starter模块的列表及含义,百度 Spring Boot的启动器Starter详解
至此,pom内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.larry.spring</groupId> <artifactId>larry-spring-demo4</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
保存pom,刷新maven,以便刷新依赖导入。
基本上,如果没有特别的需要,现在就可以直接写Controller了!!!–特别的需要 是指设置容器、访问端口、路径等
④ 写一个简单的Controller
package cn.larry.spring.controller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }
这里有两个新东西:@EnableAutoConfiguration 和 SpringApplication 。
@EnableAutoConfiguration 用于自动配置。简单的说,它会根据你的pom配置(实际上应该是根据具体的依赖)来判断这是一个什么应用,并创建相应的环境。
在上面这个例子中,@EnableAutoConfiguration 会判断出这是一个web应用,所以会创建相应的web环境。
SpringApplication 则是用于从main方法启动Spring应用的类。默认,它会执行以下步骤:
1 创建一个合适的ApplicationContext实例 (取决于classpath)。
2 注册一个CommandLinePropertySource,以便将命令行参数作为Spring properties。
3刷新application context,加载所有单例beans。
4 激活所有CommandLineRunner beans。
默认,直接使用SpringApplication 的静态方法run()即可。但也可以创建实例,并自行配置需要的设置。
默认访问地址: http://localhost:8080/
按照之前的web项目习惯,你可能会问,怎么没有项目路径?
这就是Spring Boot的默认设置了,将项目路径直接设为根路径。
当然,我们也可以设置自己的项目路径 – 在classpath下的 application.properties 或者 application.yaml 文件中设置即可。
(2)利用构建工具构建项目
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的基础结构共三个文件:
l src/main/java 程序开发以及主程序入口
l src/main/resources 配置文件
l src/test/java 测试程序
另外,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的 org.springframework.boot spring-boot-starter-web .xml文件中默认有两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;
spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。
2、编写controller内容
@RestControllerpublic class HelloWorldController { @RequestMapping("/hello") public String index() { }}
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!
3、启动主程序,打开浏览器访问http://localhost:8080,就可以看到效果了
4,如何做单元测试
打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = MockServletContext.class) @WebAppConfigurationpublic class HelloWorldControlerTests { private MockMvc mvc; public void setUp() throws Exception { mvc = MockMvcBuilders.standaloneSetup(newHelloWorldController()).build(); } @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); }}
开发环境的调试
热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
该模块在完整的打包环境下运行的时候会被禁用。如果你使用java -jar启动应用或者用一个特定的classloader启动,它会认为这是一个“生产环境”。
总结
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。
相关文章推荐
- Spring Boot入门helloworld
- [置顶] Spring Boot入门,一步一步简化,实现Spring Web项目开发
- [置顶] Spring Boot(一)——入门环境搭建
- Spring boot入门一 环境搭建HelloWorld
- [置顶] SSH框架整合入门helloworld两种事务管理方式(失败的自己)
- 001-SpringMVC入门--HelloWorld
- Android入门系列001----Android HelloWorld 分析(Activity类基础)
- [置顶] Python 入门指南
- [置顶] hdu2815 扩展Baby step,Giant step入门
- 为什么选择Spring Boot作为微服务的入门级微框架
- FreeMarker入门笔记一之helloworld
- [置顶] ant 入门使用指南
- [置顶] 【python Django】django入门教程1
- [置顶] Netty学习总结(1)——Netty入门介绍
- [置顶] Mybatis从0开始入门到使用,适合新手
- [置顶] Java封装入门讲解(深入浅出)
- 【Android学习之旅3】HelloWorld入门之旅
- [置顶] Android 入门基础(6) ---收集android开发常用术语
- [置顶] android注解入门 并来自己写一个框架
- [置顶] Android 入门基础(8) ---DatePickerDialog