Brief introduction
Did you retreat from the complex configuration when you first contacted and learned the spring framework for the 1th time? When you use the Spring framework for Nth times, do you feel bored with a bunch of sticky configurations? Try spring boot to make it easier and faster to build your spring app!
Spring boot makes our spring application even lighter and more lightweight. For example, you can simply rely on a Java class to run a spring reference. You can also package your app as a jar and run your spring Web app by using Java-jar.
Key Benefits of Spring boot:
- Get started faster for all spring developers
- Out-of-the-box with a variety of default configurations to simplify project configuration
- Inline container simplifies web projects
- No requirements for redundant code generation and XML configuration
Quick Start
The main objective of this chapter is to build the Spring Boot Foundation project and implement a simple HTTP request processing, which gives a preliminary understanding of spring boot and experiences its simple structure and rapid development.
System Requirements:
- Java 7 and above
- Spring Framework 4.1.5 and above
This article adopts Java 1.8.0_73
, Spring Boot 1.3.2
debugging passes.
Building projects with Maven
SPRING INITIALIZR
creating basic projects with tools
- Access:
http://start.spring.io/
- Select the Build tool
Maven Project
, Spring boot version, 1.3.2
and some engineering basics to refer to the spring INITIALIZR
- Click to
Generate Project
download the project compression package
- Unzip the project package and use the IDE to
Maven
import the project as an IntelliJ IDEA 14
example:
- menu, select
File
–> New
–>Project from Existing Sources...
- Select the extracted Items folder and click
OK
- Click
Import project from external model
and select Maven
, and click to the Next
end.
- If you have multiple versions of the JDK in your environment, please select the
Java SDK
above version when you choose Java 7
Project Structure Analysis
Project structure
The following steps complete the creation of the base project, as shown in the Spring boot infrastructure with a total of three files (the exact path varies according to the group all the differences that the user fills in when the project is generated):
src/main/java
Under the program entry:Chapter1Application
src/main/resources
The following configuration file:application.properties
src/test/
Test entry under:Chapter1ApplicationTests
Both the generated Chapter1Application
and Chapter1ApplicationTests
class can run directly to start the currently created project, and because the project is currently not mated to any data access or Web modules, the program ends up running after the spring has finished loading.
Introducing the Web Module
The current pom.xml
content is as follows, with only two modules introduced:
spring-boot-starter
: core modules, including automatic configuration support, logs, and Yaml
spring-boot-starter-test
: Test modules, including 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> Span class= "line" ></DEPENDENCY> </DEPENDENCIES> |
To introduce a Web module, you need to add a spring-boot-starter-web
module:
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency>
|
Writing HelloWorld Services
- Create
package
a named com.didispace.web
(modified according to the actual situation)
- Create
HelloController
a class with the following content
@RestController Hellocontroller {
@RequestMapping ("/hello") Index() { "Hello World"; }
}
|
- Start the main program, open the browser access
http://localhost:8080/hello
, you can see the page outputHello World
Writing Unit Test Cases
Open the src/test/
test entry class under Chapter1ApplicationTests
. The following is a simple unit test to simulate an HTTP request, as follows:
@RunWith (Springjunit4classrunner.class) @SpringApplicationConfiguration (classes = mockservletcontext.class) @WebAppConfiguration PublicClasschapter1applicationtests {
Private MOCKMVC MVC;
@Before PublicvoidSetUp () throws Exception { 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 (content (). String (Equalto ( "Hello World")); /span> |
Use MockServletContext
to build an empty one WebApplicationContext
so that we can create HelloController
it @Before
and pass it to the function in the function MockMvcBuilders.standaloneSetup()
.
- Note that the following content is introduced to make,
status
content
and equalTo
function available
Static org.hamcrest.Matchers.equalTo; Static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; Static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
Now that the goal has been completed, a blank spring boot project has been built through MAVEN, and a simple request processing is implemented by introducing a Web module.
recommendation : Write, Debug, and manage spring boot apps online using cloud Studio
Spring Boot Quick Start