SpringBoot2教程(二)整合Mybatis,dataSource,Thymeleaf


本篇主要内容讲springboot怎么整合Mybatis,Druid,Thymeleaf,Logback及基本运用。

源码地址:https://github.com/q200737056/Spring-Course/tree/master/springboot2Test2

一、项目环境

Java8+Maven3.3.9+SpringBoot2.0.4+Mybatis3+Druid+Thymeleaf3+Logback+Mysql+Eclipse


二、代码及配置讲解

1.引入依赖包


        org.springframework.boot
        spring-boot-starter-parent
        2.0.4.RELEASE
        
    

        
        
            org.springframework.boot
            spring-boot-starter
        
        
        
            org.springframework.boot
            spring-boot-starter-aop
        
        
        
        
            org.springframework.boot
            spring-boot-starter-web
            
             
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
            
                
                    HikariCP
                    com.zaxxer
                
            
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.10
        
        
        
            mysql
            mysql-connector-java
        
        
        
            org.springframework.boot
            spring-boot-devtools
            true 
        
  

2.application.yml配置

整合了Mybatis,Druid,Thymeleaf的配置,可以说非常方便,以下截取了配置部分。

# Spring配置
spring:
  #thymeleaf配置,默认前缀为templates
  thymeleaf:
    mode: HTML
    encoding: utf-8
    # 禁用缓存
    cache: false
  datasource:
    #springboot2.02版本默认使用HikariCP
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true
          &characterEncoding=utf-8&useSSL=false
    username: xxx
    password: xxx
  devtools:
    restart:
      #热部署开关
      enabled: true
# MyBatis配置
mybatis:
    # 搜索指定包别名
  typeAliasesPackage: com.springboot2.test2
    # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath:mapper/*Mapper.xml
    # 加载全局的配置文件
  configLocation: classpath:property/mybatis-config.xml

3.logback日志配置



    
    
    
    
    
    
        
            ${log.pattern}
        
              
 
        
             
                       INFO
                 
    
    
    
        ${log.path}/springboot2Test2-info.log
        
            
            ${log.path}/springboot2Test2-info.%d
{yyyy-MM-dd}.log
            
            60
        
        
        
            ${log.pattern}
        
          
    
          
            INFO
            
            ACCEPT
            
            DENY
        
    
    
    
    
    
        
        
    
 

放在根目录下,配置文件名取logback.xml或logback-spring.xml,spring会默认加载。当然也可以取别的名称,在application.yml中配置,但不推荐这么做。

logging
  config: classpath:mylogback.xml

logback常见的appender

  • ch.qos.logback.core.ConsoleAppender : 输出到控制台
  • ch.qos.logback.core.FileAppender:输出到文件
  • ch.qos.logback.core.rolling.RollingFileAppender:输出到文件,可以配置滚动策略

常见的日志格式符号

  • %logger{n}:输出Logger对象类名,n代表长度
  • %class{n}:输出所在类名
  • %d{pattern}或者%date{pattern}:输出日志日期,格式同java
  • %L或%line:日志所在行号
  • %m或%msg:日志内容
  • %method:所在方法名称
  • %-5level: 级别从左显示5个字符宽度
  • %thread:所在线程名称
  • %n : 换行

4.Thymeleaf

Thymeleaf是一种用于Web和独立环境服务器端的Java模板引擎,而且非常容易扩展。
标准表达式语法

  • ${...} : 变量表达式。与spring集成后,使用spring EL。
  • *{...} : 选择表达式。
  • #{...} :消息 (i18n) 表达式。
  • @{...} : 链接 (URL) 表达式。
  • ~{...} : 片段表达式。

示例

//上下文相关URL

//迭代列表

        
         
         
         
   

5.controller,mapperXML配置

@Controller
@RequestMapping("/index")
public class IndexController {
    //日志示例, springboot默认采用logback日志,
       //一般最好都用slf4j日志门面创建,可以兼容多个日志,
    //即使把 logback 换成 log4j2,日志代码都不会受到影响
    //logback 详细配置可 查看 根目录下logback.xml
    private static Logger log = LoggerFactory.getLogger(IndexController.class);
    @Autowired
    private IndexService indexService;
    /**
     * 首页登陆
     * @return
     */
    @RequestMapping(method=RequestMethod.GET)
    public String index(){
        return "index";
    }
    /**
     *  登陆
     *  @PostMapping相当于@RequestMapping(method=RequestMethod.POST)
     * @return
     */
    @PostMapping("/login")
    public String login(User user,ModelMap modelMap,HttpSession session){
        String pass = this.indexService.login(user.getName());
        if(pass==null){
            modelMap.put("msg", "用户名不存在!");
            return "index";
        }else if(!user.getPassword().equals(pass)){
            modelMap.put("msg", "密码错误!");
            return "index";
        }
        log.info("{}_用户登陆",user.getName());
        session.setAttribute("username", user.getName());
        return "forward:/index/userList";
    }
    /**
     * 列出 所有用户
     * @param modelMap
     * @return
     */
    @RequestMapping("/userList")
    public String userList(ModelMap modelMap){
        
        List userList = this.indexService.findUserList();
        modelMap.put("userList", userList);
        return "userList";
    }
    @GetMapping("/toAdd")
    public String toAdd(){
        return "adduser";
    }
    /**
     * 新增用户
     * @param user
     * @return
     */
    @PostMapping("/addUser")
    public String addUser(User user){
        this.indexService.insertUser(user);
        // redirect 重定向
        return "redirect:/index/userList";
    }
    /**
     * 删除用户
     * @param id
     * @return
     */
    @GetMapping("/deleteUser")
    public String deleteUser(String id){
        this.indexService.deleteUser(id);
        return "redirect:/index/userList";
    }
}

    
    
    
    
    
    
        
    
    
        DELETE FROM TEST_USER WHERE ID=#{id}
    

6.部分页面




    
    
    
       登录成功


,登陆成功!

你可能感兴趣的:(SpringBoot2教程(二)整合Mybatis,dataSource,Thymeleaf)