一、创建一个maven项目
1.首先是建立一个Spring boot 的maven 项目,选择maven-archetype-quickstart这个maven过滤器,创建一个maven项目。
2.建立后续的自己项目的根节点信息,然后选择finish。
3.此处标志着,一个新的maven项目就已经搭建成功了。之后要将spring boot相关的jar引入到新的项目当中。
二、改造项目变成spring boot项目
1.打开pom.xml文件配置和引入相关的jar包
2.修改对应的文件引入如下的配置文件
<!-- Spring Boot 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- jdk版本和编码格式处理 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
配置对应的mybati + mysql + 数据库连接和部署的相关依赖jar包。
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- Spring Boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<!-- 添加spring boot 注解 注入配置文件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<!-- jersey依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
</dependencies>
3.在根目录包下面新建一个启动类 Application.java。
在这个过程当中,有两个需要注意的地方
1)@MapperScan("com.tk.ls.verity.*") 配置扫描的mapper 接口
2)@ComponentScan("com.tk.ls.verity.*") 扫描将来control接入入口
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@MapperScan("com.tk.ls.verity.*")
//@ComponentScan("cn.tk.api.*,cn.tk.api.config.*,cn.tk.api.controller.*cn.tk.dao.*,cn.tk.service.*,cn.tk.service.policy.*,cn.tk.service.policy.impl.*")
@ComponentScan("com.tk.ls.verity.*")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3配置application.yml文件
配置过程中,有两个需要注意的地方
1)每个配置后面要留一下空格,做解析格式要求
2)自定义配置需要自己写配置解析注入类
4.常规方法写对应的mapper、service、以及对应的controller。
注意点有2个注意点
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
例如:
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解
@RestController
@RequestMapping("/dbInfo")
public class DbInfoController {
@Autowired
private DbInfoService dbInfoServiceImpl;
@PostMapping("/queryDbInfo")
public List<DbInfoVo> queryDbInfo(){
Map map = new HashMap();
List<DbInfoVo> list = dbInfoServiceImpl.queryAllDbInfo(map);
return list;
}
}
三、整合jersey。
1.引入spring和jersey整合的jar,添加到pom.xml文件当中
<!-- jersey依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
2.添加对应的配置类
注意点有一个
@ComponentScan({"com.tk.ls.verity"})扫描的是controller层
package com.tk.ls.verity.config;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import com.tk.ls.verity.controller.TestController;
@Configuration
@ComponentScan({"com.tk.ls.verity"})
public class JerseyConfig extends ResourceConfig{
public JerseyConfig() {
//构造函数,在这里注册需要使用的内容,(过滤器,拦截器,API等)
register(TestController.class);
}
}
最后,通过application.java类的main方法启动项目。
请求地址需要注意,不需要添加对应的项目名称。
针对如下代码,请求地址如下http://localhost:8080/test/test
@Component
@Path("/test")
public class TestController {
@Autowired
private DbInfoService dbInfoServiceImpl;
//path注解指定路径,get注解指定访问方式,produces注解指定了返回值类型,这里返回JSON
@Path("/test")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public List<DbInfoVo> test(){
Map map = new HashMap();
List<DbInfoVo> list = dbInfoServiceImpl.queryAllDbInfo(map);
return list;
}
}