SpringBoot使用介绍

2018-12-20 22:50:00
admin
原创 2723
摘要:SpringBoot使用介绍

一、SpringBoot使用简介

1、创建项目:https://start.spring.io

2、依赖组件版本:https://docs.spring.io/spring-boot/appendix/dependency-versions/properties.html

3、组件加载顺序:@Configuration → @WebListener → @Service | @Controller | @Component  端口监听

4、Runner:ApplicationRunner,用于启动初始化,初始化失败进程退出;

5、Runner:CommandLineRunner,用于启动初始化,初始化失败进程退出;

6、Runner:Web服务的流量这个时候已经允许进来,不能有影响服务可用性的操作;

7、@Transactional:同一个类A方法调用B方法,调用B方法不经过动态代理,所以不会产生新的事务;

8、@Transactional:不同的类A方法调用B方法,默认B方法加入A方法的事务,A或B的非吞噬异常都会导致事务回滚;


项目结构

1、Application.java建议放到根目录,主要用于做框架配置;
2、domain主要用于实体Entity与数据访问层DAO;
3、service主要是业务类代码;
4、controller负责页面访问控制;

5、commons负责一些工具类;


maven wapper:

1、用于自动下载maven,没有时自动下载maven,版本不对时下载指定版本maven;

2、.mvn,maven wapper的配置文件;

3、mvnw,maven wapper的linux脚本;

4、mvnw.cmd,maven wapper的windows脚本;

5、SpringBoot项目可以使用mvnw,或直接使用本机mvn;


增加web支持

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


增加热部署支持

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>


不执行测试代码

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

1、surefire用于单元测试,执行*Test.java代码;

2、failsafe用于集成测试,执行*IT.java代码;

3、-Dmaven.test.skip=true同时禁止编译和运行,-DskipTests仅禁止运行测试代码


spring-boot插件目标:

mvn spring-boot:help

mvn spring-boot:run,启动spring-boot应用,和eclipse的run行为一样,不能再执行其它goal;

mvn spring-boot:start,启动spring-boot应用,和eclipse的run行为一样,可以再执行其它goal;

mvn spring-boot:stop


controller示例

@RestController
public class SampleController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}


测试用例示例

import org.junit.*;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.*;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.*;
import org.springframework.test.web.servlet.*;
import org.springframework.test.web.servlet.setup.*;
import org.springframework.test.web.servlet.request.*;
import org.springframework.test.web.servlet.result.*;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleControllerTests {
private MockMvc mvc;

@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new SampleController()).build();
}

@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
}
}

发表评论
评论通过审核之后才会显示。