SpringBoot+SSM整合

1.SpringBoot环境准备

①构建Maven工程

SpringBoot+SSM整合_第1张图片

②导入spring boot父工程


<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>2.1.3.RELEASEversion>
    <relativePath/>
parent>

③导入spring boot 的Web场景启动器


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>

管理jdk版本

<properties>
      <java.version>1.8java.version>
  properties>

④创建启动类

SpringBoot+SSM整合_第2张图片

启动类要在父包中创建,Spring Boot项目通过main函数即可启动。

2.整合SpringMVC

①修改端口

映射端口
### server.port=80

②访问静态资源

默认的静态资源路径为:

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/

只要静态资源放在这些目录中任何一个,SpringMVC都会帮我们处理。

③添加拦截器

如果你想要保持Spring Boot 的一些默认MVC特征,同时又想自定义一些MVC配置(包括:拦截器,格式化器, 视图控制器、消息转换器 等等),你应该让一个类实现WebMvcConfigurer,并且添加@Configuration注解,但是千万不要@EnableWebMvc注解。

@author bruceliu

- @create 2019-05-01 12:00

- @description 自定义拦截器测试
  */
  public class LoginInterceptor implements HandlerInterceptor {

  private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        logger.debug("preHandle method is now running!");
        return true;
    }

@Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
        logger.debug("postHandle method is now running!");
    }

@Override
 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
     logger.debug("afterCompletion method is now running!");
 }
 }
/**
 * @author bruceliu
 * @create 2019-05-01 12:01
 * @description 配置拦截器
 */
@Configuration
public class MvcConfig implements WebMvcConfigurer {
    /**
     * 通过@Bean注解,将我们定义的拦截器注册到Spring容器
     * @return
     */
    @Bean
    public LoginInterceptor loginInterceptor(){
        return new LoginInterceptor();
    }

    /**
     * 重写接口中的addInterceptors方法,添加自定义拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 通过registry来注册拦截器,通过addPathPatterns来添加拦截路径
        registry.addInterceptor(this.loginInterceptor()).addPathPatterns("/**");
    }
}

3.整合Mybatis

①整合jdbc和事务

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-jdbcartifactId>
dependency>

<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>5.1.46version>
dependency>

至于事务,SpringBoot中通过注解来控制。就是我们熟知的@Transactional

在刚才引入jdbc启动器的时候,SpringBoot已经自动帮我们引入了一个连接池:

因此,我们只需要指定连接池参数即可:

application.properties

# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/userdb
spring.datasource.username=root
spring.datasource.password=123
# 可省略,SpringBoot自动推断
spring.datasource.driverClassName=com.mysql.jdbc.Driver

# 配置数据库连接池
#初始化连接数
spring.datasource.druid.initial-size=1
#最小空闲连接
spring.datasource.druid.min-idle=1
#最大活动连接
spring.datasource.druid.max-active=20
#获取连接时测试是否可用
spring.datasource.druid.test-on-borrow=true
#监控页面启动
spring.datasource.druid.stat-view-servlet.allow=true

②Mybatis启动


<dependency>
    <groupId>org.mybatis.spring.bootgroupId>
    <artifactId>mybatis-spring-boot-starterartifactId>
    <version>1.3.2version>
dependency>
# mybatis 别名扫描
mybatis.type-aliases-package=com.bruce.bean
# mapper.xml文件位置,如果没有映射文件,请注释掉
mybatis.mapper-locations=classpath:mappers/*.xml

这里没有配置mapper接口扫描包,因此我们需要给每一个Mapper接口添加@Mapper注解,才能被识别。

@Mapper
/**
 * @author bruceliu
 * @create 2019-05-01 14:50
 * @description
 */
@Mapper
public interface UserMapper {

    public User queryById(Integer id);

    public void deleteById(Integer id);
}

你可能感兴趣的:(SSM)