SpringBoot从入门到熟悉(一)快速入门

xiaoxiao2021-03-01  24

简介

相信在你第1次接触和学习Spring框架的时候,就已经为其及其繁琐的配置过程而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!

官方是这样介绍Springboot的:http://spring.io/projects/spring-boot

对,没错,Just Run!!!

Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。

使用spring boot有什么好处

平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

1)配置web.xml,加载spring和spring mvc2)配置数据库连接、配置spring事务3)配置加载配置文件的读取,开启注解4)配置日志文件…配置完成之后部署tomcat 调试

现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!

但是如果使用spring boot呢? 很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!

通过本系列文章,希望各位不仅会知道怎么使用springboot配置项目,而且还知道自己在干什么

快速入门

本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

系统要求:

Java 8及以上Spring Framework 4.1.5及以上

本文采用Java 1.8、Spring Boot 2.0 调试通过。

使用Maven构建项目

1、访问 http://start.spring.io/2、选择构建工具Maven Project、Java语言、Spring Boot版本2.0.5以及一些工程基本信息,可参考下图所示: 3、点击Generate Project下载项目压缩包4、解压后,使用File–>New–>Project from Existing Sources...选择解压后的项目文件夹,点击OK,点击Import project from external model并选择Maven,然后Next,Next到底为止。

项目结构解析

通过上面步骤完成了基础项目的创建,如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):

src/main/java下的程序入口:BootApplicationsrc/main/resources下的配置文件:application.propertiessrc/test/下的测试入口:BootApplicationTests

生成的BootApplication和BootApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配置任何数据访问或Web模块,程序会在加载完Spring之后结束运行。

另外,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 负责页面访问控制

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改。

引入Web模块

1.当前的pom.xml内容如下,springboot已经自动仅引入了两个模块:

spring-boot-starter:核心模块,包括自动配置支持、日志和YAMLspring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>

2.在pom.xml中添加支持web的模块:添加spring-boot-starter-web模块:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

 3.编写HelloWorld服务

创建一个新package命名为com.zerah.boot.controller(根据实际情况修改)创建HelloController类,内容如下

@RestController public class HelloController { @RequestMapping("/hello") public String index(){ return "hello springBoot"; } } 启动主程序【BootApplication.java的main方法】,打开浏览器访问http://localhost:8080/hello,可以看到页输出

单元测试

打开的src/test/下的测试入口Chapter1ApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体如下:

@RunWith(SpringRunner.class) @SpringBootTest public class HelloTest { private MockMvc mvc; @Before public void setUp() { mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build(); } @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect((ResultMatcher) content().string(equalTo("hello springBoot"))); } }

使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。 

注意引入下面内容,让status、content、equalTo函数可用 import static org.hamcrest.Matchers.equalTo; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

至此已完成目标,通过Maven构建了一个空白Spring Boot项目,再通过引入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启动,它会认为这是一个“生产环境”。

 

转载请注明原文地址: https://www.6miu.com/read-3350293.html

最新回复(0)