SpringBoot 之快速搭建后台管理系统

文章目录

  • 1、导入依赖
  • 2、集成Mybatis
  • 3、集成日志
  • 4、编写后台页面
  • 5、编写控制器
  • 6、集成mybatis代码生成插件
  • 7、后台页面最终效果图

1、导入依赖

<properties>
	<java.version>1.8java.version>
    <env>betaenv>
    <scmVersion>HEADscmVersion>
    <mysql.java.version>5.1.42mysql.java.version>
    <guava.version>19.0guava.version>
    <druid.version>1.1.11druid.version>
    <pagehelper.version>1.2.3pagehelper.version>
    <mybatis.version>2.0.1mybatis.version>
properties>

<dependencies>
	<dependency>
		<groupId>org.springframework.bootgroupId>
		<artifactId>spring-boot-starter-webartifactId>
	dependency>
	<dependency>
		<groupId>org.springframework.bootgroupId>
		<artifactId>spring-boot-devtoolsartifactId>
		<scope>runtimescope>
		<optional>trueoptional>
	dependency>
	<dependency>
		<groupId>org.projectlombokgroupId>
		<artifactId>lombokartifactId>
		<optional>trueoptional>
	dependency>
	<dependency>
		<groupId>org.springframework.bootgroupId>
		<artifactId>spring-boot-starter-testartifactId>
		<scope>testscope>
	dependency>
    
    <dependency>
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
        <version>${mybatis.version}version>
    dependency>
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        
        <version>${mysql.java.version}version>
        <scope>runtimescope>
    dependency>
    <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelper-spring-boot-starterartifactId>
        <version>${pagehelper.version}version>
    dependency>
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
        <version>${druid.version}version>
    dependency>
    
    <dependency>
        <groupId>com.google.code.gsongroupId>
        <artifactId>gsonartifactId>
    dependency>
    <dependency>
        <groupId>com.google.guavagroupId>
        <artifactId>guavaartifactId>
        <version>${guava.version}version>
    dependency>
    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-thymeleafartifactId>
    dependency>
    
    <dependency>
        <groupId>org.mybatis.generatorgroupId>
        <artifactId>mybatis-generator-coreartifactId>
        <version>1.3.5version>
        <scope>runtimescope>
    dependency>
dependencies>

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-maven-pluginartifactId>
		plugin>

		
		<plugin>
			<groupId>org.mybatis.generatorgroupId>
			<artifactId>mybatis-generator-maven-pluginartifactId>
			<version>1.3.2version>
			<dependencies>
				<dependency>
					<groupId>mysqlgroupId>
					<artifactId>mysql-connector-javaartifactId>
					<version>${mysql.java.version}version>
				dependency>
			dependencies>
			<configuration>
				<configurationFile>src/main/resources/generatorConfig.xmlconfigurationFile>
				<verbose>trueverbose>
				<overwrite>trueoverwrite>
			configuration>
		plugin>
	plugins>
build>

2、集成Mybatis

参考:SpringBoot 之集成MyBatis

3、集成日志

resources目录下创建logback-spring.xml日志文件。
参考:SpringBoot 之日志框架







<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <contextName>logbackcontextName>

    
    
    <property name="log.path" value="/data/logs/tomcat/spring-boot-ule"/>

    

    
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debuglevel>
        filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>


    

    
    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <file>${log.path}/info.logfile>
        
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            <charset>UTF-8charset>
        encoder>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            <fileNamePattern>${log.path}/info-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
            
            <maxHistory>90maxHistory>
        rollingPolicy>
    appender>


    
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <file>${log.path}/error.logfile>
        
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            <charset>UTF-8charset> 
        encoder>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/error-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
            
            <maxHistory>90maxHistory>
        rollingPolicy>
        
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERRORlevel>
            <onMatch>ACCEPTonMatch>
            <onMismatch>DENYonMismatch>
        filter>
    appender>
	
	
    <logger name="com.ule.mapper" level="debug"/>

    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE_ALL"/>
        <appender-ref ref="ERROR_FILE"/>
    root>

configuration>

4、编写后台页面

使用layui构建后台也没布局。

第一步:将layui复制到static目录下
SpringBoot 之快速搭建后台管理系统_第1张图片
第二步:在templates编写html页面
使用thymeleaf模板引擎。
在这里插入图片描述
commons.html:公共模板


<html lang="en" xmlns:th="http://www.thymeleaf.org">

<head lang="en">
    <meta charset="UTF-8">
    <title>公共模板title>
head>


<header th:fragment="commonHeader">
    <link type="text/css" rel="stylesheet" th:href="@{/layui/css/layui.css}">
    <script th:src="@{/layui/layui.all.js}">script>
    <div class="layui-header">
        <div class="layui-logo"><a href="" style="color: #00FF00">后台管理系统a>div>
    div>
header>


<menu th:fragment="commonMenu(index)">
    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <ul class="layui-nav layui-nav-tree">
                <li class="layui-nav-item layui-nav-itemed">
                    <dl class="layui-nav-child">
                        
                        <dd th:class="${index}==0?'layui-this'"><a th:href="@{/content1}">菜单1a>dd>
                        <dd th:class="${index}==1?'layui-this'"><a th:href="@{/content2}">菜单2a>dd>
                        
                    dl>
                li>
            ul>
        div>
    div>
menu>


<footer id="commonFooter">
    <div class="layui-footer">
        <p>Copyright © 1998 - 2018 YYServer. All Rights Reservedp>
    div>
footer>

html>

content1.html:菜单一


<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>后台管理title>
head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <header th:replace="commons :: commonHeader">header>

    <menu th:replace="commons :: commonMenu(0)">menu>

    <div class="layui-body">
        
        <div style="padding: 15px;">
            <p>内容主体区域1p>
            <p th:text="${name}">p>
        div>
    div>

    <footer th:replace="commons :: #commonFooter">footer>
div>

body>
html>

content2.html:菜单二


<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>后台管理title>
head>
<body class="layui-layout-body">
    <div class="layui-layout layui-layout-admin">
        <header th:replace="commons :: commonHeader">header>

        <menu th:replace="commons :: commonMenu(1)">menu>

        <div class="layui-body">
            
            <div style="padding: 15px;">
                <p>内容主体区域2p>
            div>
        div>

        <footer th:replace="commons :: #commonFooter">footer>
    div>
body>
html>

5、编写控制器

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

@Controller
@Slf4j
public class HelloController {

    @RequestMapping("/content1")
    public String content1(Map<String, Object> paramMap, HttpServletRequest request, HttpServletResponse response) {
        paramMap.put("name", "Tom");
        return "content1";
    }

    @RequestMapping("/content2")
    public String content2(Map<String, Object> paramMap) {
        return "content2";
    }
}

6、集成mybatis代码生成插件

已经在导入依赖中集成了mybatis代码生成插件,这里只需要编写代码生成需要的xml配置。
resources目录下创建generatorConfig.xml文件。
参考:IDEA用Maven插件生成Mybatis的mapper、xml、bean

7、后台页面最终效果图

SpringBoot 之快速搭建后台管理系统_第2张图片

你可能感兴趣的:(#,SpringBoot)