springBoot整合

1.使用maven构建springBoot项目

        这里使用的IDEA版本为2021.1

 点击next

点击完成! 创建好的项目目录结构是这样的

2.在pom.xml中添加mybatis和连接mysql数据库的相关依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>

3.配置在resources目录下提供好的application.properties配置文件

#端口号,可以直接在这里进行修改
server.port=8081
#配置连接数据库的相关参数
spring.datasource.url=jdbc:mysql://localhost:3306/news?characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置mybatis的映射文件的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
#mybatis要扫描的实体类包路径,在mybatis的映射文件中可以直接使用类名
mybatis.type-aliases-package=com.ck.pojo
#开启驼峰命名
mybatis.configuration.mapUnderscoreToCamelCase=true
#第一个设置就是使用24小时的时间格式;第二个设置就是设置时区为东八区
spring.jackson.default-property-inclusion=NON_NULL
spring.jackson.time-zone=GMT+8
#设置日期格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

#Redis配置
#数据库索引 0-15
spring.redis.database=15
spring.redis.host=127.0.0.1
spring.redis.port=6379
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1

        也可以创建yaml/yml配置文件格式:application.yml,文件名也必须为application

#端口号,可以直接在这里进行修改
server:
  port: 8081

spring:
  #配置连接数据库的相关参数
  datasource:
    url: jdbc:mysql://localhost:3306/est?characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 1234
    driver-class-name: com.mysql.cj.jdbc.Driver
#第一个设置就是使用24小时的时间格式;第二个设置就是设置时区为东八区;第三个设置日期格式
  jackson:
    default-property-inclusion: NON_NULL
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
#redis配置
  redis:
    database: 1
    host: 127.0.0.1
    port: 6379
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        min-idle: 0
        max-idle: 8


#配置mybatis的映射文件的位置
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  #mybatis要扫描的实体类包路径,在mybatis的映射文件中可以直接使用类名
  type-aliases-package: cn.ck.pojo
  #开启驼峰命名
  configuration:
    mapUnderscoreToCamelCase: true

        如何配置数据库带有下划线字段对应Java实体类属性(驼峰命名)

4.创建日志框架logback配置文件logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--输出日志到控制台-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout>
            <pattern>
                <!--
                   %p:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
                   %r:输出自应用启动到输出该日志讯息所耗费的毫秒数
                   %t:输出产生该日志事件的线程名
                   %f:输出日志讯息所属的类别的类别名
                   %c:输出日志讯息所属的类的全名
                   %d:输出日志时间点的日期或时间,指定格式的方式: %d{yyyy-MM-dd HH:mm:ss}
                   %l:输出日志事件的发生位置,即输出日志讯息的语句在他所在类别的第几行。
                   %msg:输出日志消息,
                   %n:输出一个换行符号
               -->
                [%p]%d - %msg%n
            </pattern>
        </layout>
    </appender>

    <!--输出日志到文件-->
    <!--<appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
            <onMatch>DENY</onMatch>
        </filter>
        <encoder>
            <pattern>
                [%p]%d - %msg%n
            </pattern>
        </encoder>
        &lt;!&ndash;指定文件的输出位置&ndash;&gt;
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>
                C:/logs2020/%d.log
            </fileNamePattern>
        </rollingPolicy>
    </appender>-->
    <root level="info">
        <appender-ref ref="consoleLog"></appender-ref>
        <!--<appender-ref ref="fileLog"></appender-ref>-->
    </root>
</configuration>

5.创建好各层的包

6.创建实体类,编写mapper接口

     注意:   这里的mapper接口需要添加@Mapper注解

package com.ck.mapper;

import com.ck.pojo.NewsDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper //告诉springBoot这里是mapper接口
public interface NewsDetailMapper {
    /**
     * 查询新闻所有新闻信息分页显示
     */
    List<NewsDetail> findAllDetail(@Param("pageNo") int pageNo, @Param("pageSize") int pageSize);
}

7.编写mapper接口的映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ck.mapper.NewsDetailMapper">
    <!--查询所有的新闻列表并分页显示-->
    <select id="findAllDetail" resultType="com.ck.pojo.NewsDetail">
        select *
        from news_detail
        ORDER BY `createdate` DESC
        limit #{pageNo},#{pageSize}
    </select>
</mapper>

8.编写service层

        service接口

package com.ck.service;

import com.ck.pojo.NewsDetail;

import java.util.List;

public interface NewsDetailService {
    List<NewsDetail> findAllDetail(int pageNo, int pageSize);
}

        service接口实现类

package com.ck.service.impl;

import com.ck.mapper.NewsDetailMapper;
import com.ck.pojo.NewsDetail;
import com.ck.service.NewsDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service //service层注解
public class NewsDetailServiceImpl implements NewsDetailService {

    @Autowired //注入mapper层
    private NewsDetailMapper ndm;
    @Override
    public List<NewsDetail> findAllDetail(int pageNo, int pageSize) {
        return ndm.findAllDetail(pageNo,pageSize);
    }
}

9.编写controller层

    原来@Controlle注解替换成@RestController相当于@Controller+@ResponseBody的集合

package com.ck.controller;

import com.ck.pojo.NewsDetail;
import com.ck.service.NewsDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController //相当于@Controller+@ResponseBody的集合
public class NewsDetailController {
    @Autowired
    private NewsDetailService nds;

    //查询所有新闻信息列表 分页显示
    @RequestMapping("/findAllDetail")
    public Map<String, Object> findAllDetail(int pageNo, int pageSize) {
        Map<String, Object> map = new HashMap<>();
        List<NewsDetail> detailList = nds.findAllDetail((pageNo - 1) * pageSize, pageSize);
        map.put("list", detailList);
        return map;
    }
}

10.运行springBoot启动类SpringbootMybatisApplication

 11.测试访问controller层方法的URL

        显示能够返回json格式的数据,说明我们搭建的springBoot环境已经成功了

12.解决springboot跨域等问题

13.JSR303——数据校验&统一响应数据格式

14.全局处理异常&全局数据保存

15.springBoot——文件上传结合ElementUi

16.SpringBoot与Shiro整合

17.基于springboot+dubbo+zookeeper+redis实现微服架构搭建

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值