有道云笔记链接 :http://note.youdao.com/noteshare?id=3c853cbdd3ed9c9ba5694dd44c6cea77
pom.xml文件 : http://note.youdao.com/noteshare?id=7bf87f028b414e7798c2128242f0439a
如何做单元测试 (spring test + junit 对spring mvc 的测试):
打开的src/test/下的测试入口,编写简单的http请求来测试;使用
mockmvc
进行,利用
MockMvcResultHandlers.print()
打印出执行结果。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public
class
HelloTest
{
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();
}
}
热部署:
热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。大多数基于Java的应用服务器,包括
EJB
服务器和Servlet容器,都支持热部署。
只需在pom.xml中添加 一个节点 :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
返回json :
要有三个jar包:
jackson-databind-2.8.10jar
jackson-annotation-2.8.0jar
jackson-core-2.8.10jar
代码 :
代码 :
@RestController
public class HelloController {
@RequestMapping("/hello")
public Object index() {
List list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(i+"");
}
return list;
}
}
目录结构 :
main.java(主程序)要放在
与pom.xml文件中<groupId>
xxx
</groupId>包中的xxx相同的包下
例如 :
增加web 支持 :
在pom.xml中添加节点 :
<!-- springboot对web的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
springboot 增加jsp视图 :
1 .在application.properties 文件中配置 :
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
2.在pom.xml文件中添加
<!-- 添加servlet jsp需要 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat支持 jsp是由tomcat编译 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
添加druid :
在application.properties中添加 :
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.name=druid
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM t_user
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=true
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.poolPreparedStatements=true
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
springboot打war包:
1.首先先把 pom.xml文件中的
<packaging>
jar
</packaging> 改成 <packaging>
war
</packaging>
2.在pom.xml文件中添加排除tomcat的依赖 :
<!-- 打war包时排除tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。
3.给主程序继承SpringBootServletInitializer,
继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。
4.最后执行
mvn clean package -Dmaven.test.skip=true
会在target目录下生成:项目名+版本号.war文件,拷贝到tomcat服务器中启动即可。
或者
在项目中操作 : run as ---> maven clean ---> run as ---->maven install