Spring boot 框架搭建(maven + mybatis + jersey +mysql)

一、创建一个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;
    }
    
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值