您的位置:首页 > 编程语言 > Java开发

springboot小知识

2018-01-30 11:36 344 查看
有道云笔记链接 :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中
4000
添加 一个节点 :
<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: