SpringBoot+Mybatis框架搭建

目錄

 

一、maven導包配置(pom.xml)

二、SpringBoot配置文件配置

三、SpringBoot啓動程序

四、日誌文件配置


一、maven導包配置(pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zldc</groupId>

    <artifactId>weekly</artifactId>

    <packaging>war</packaging>

    <version>0.0.1-SNAPSHOT</version>

    <name>weekly Maven Webapp</name>

    <url>http://maven.apache.org</url>

 

    <parent>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-parent</artifactId>

       <version>1.5.3.RELEASE</version>

    </parent>

 

    <properties>

       <tomcat-jdbc.version>8.0.32</tomcat-jdbc.version>

       <mybatis.version>3.2.5</mybatis.version>

       <mybatis-spring.version>1.2.2</mybatis-spring.version>

       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

       <mysql-connector>5.1.39</mysql-connector>

       <jdk.version>1.8</jdk.version>

       <oracle.version>11.2.0.3</oracle.version>

       <log4j.version>1.2.17</log4j.version>

       <druid.version>1.0.28</druid.version>

       <slf4j.version>1.7.2</slf4j.version>

    </properties>

 

    <dependencies>

       <!-- spring Boot start -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-web</artifactId>

       </dependency>

 

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-tomcat</artifactId>

           <scope>compile</scope>

       </dependency>

 

       <dependency>

           <groupId>org.mybatis.spring.boot</groupId>

           <artifactId>mybatis-spring-boot-starter</artifactId>

           <version>1.2.0</version>

       </dependency>

 

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-test</artifactId>

           <scope>test</scope>

       </dependency>

      

       <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-aop</artifactId>

        </dependency>

       

        <!-- SpringBoot熱部署 -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-devtools</artifactId>

           <optional>true</optional>

       </dependency>

       

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-test</artifactId>

        </dependency>

       <!-- spring Boot end -->

 

        <!-- MySQL依賴 -->

       <dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

       </dependency>

      

       <!-- oracle依賴 -->

       <dependency>

            <groupId>com.hynnet</groupId>

            <artifactId>oracle-driver-ojdbc6</artifactId>

            <version>12.1.0.1</version>

        </dependency>

 

       <!-- 引用druid數據源依賴 -->

       <dependency>

           <groupId>com.alibaba</groupId>

           <artifactId>druid</artifactId>

           <version>${druid.version}</version>

       </dependency>

 

       <dependency>

           <groupId>net.sf.json-lib</groupId>

           <artifactId>json-lib</artifactId>

           <version>2.3</version>

           <classifier>jdk15</classifier>

       </dependency>

 

       <!-- slf4j -->

       <dependency>

           <groupId>org.slf4j</groupId>

           <artifactId>slf4j-api</artifactId>

       </dependency>

      

       <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>fastjson</artifactId>

            <version>1.2.7</version>

        </dependency>

 

       <dependency>

           <groupId>junit</groupId>

           <artifactId>junit</artifactId>

           <scope>test</scope>

       </dependency>

    </dependencies>

 

    <build>

       <finalName>weekly</finalName>

       <plugins>

           <!-- 設置編譯版本 -->

           <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-compiler-plugin</artifactId>

              <configuration>

                  <source>${jdk.version}</source>

                  <target>${jdk.version}</target>

                  <encoding>UTF-8</encoding>

              </configuration>

           </plugin>

       </plugins>

    </build>

</project>

二、SpringBoot配置文件配置

         在application.properties文件中設置spring.profiles.active字段的值,從而讀取相應的配置文件。

application.properties

# 測試機

spring.profiles.active=dev

# UAT

#spring.profiles.active=uat

# 生產機

#spring.profiles.active=pro

 

server.port=8083

server.session.timeout=3600

# prefix

server.context-path=/weekly

 

concoo.secret=${random.int}

spring.jackson.time-zone=GMT+8

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

 

 

# alibaba database Pool

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.initialSize=5

spring.datasource.minIdle=5

spring.datasource.maxActive=20

spring.datasource.maxWait=60000

spring.datasource.timeBetweenEvictionRunsMillis=60000

spring.datasource.minEvictableIdleTimeMillis=300000

spring.datasource.validationQuery=SELECT 1 FROM DUAL

spring.datasource.testWhileIdle=true

spring.datasource.testOnBorrow=false

spring.datasource.testOnReturn=false

spring.datasource.poolPreparedStatements=true

spring.datasource.maxPoolPreparedStatementPerConnectionSize=20

spring.datasource.filters=stat,wall,log4j

spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

 

# 掃描sql配置文件:mapper需要的xml文件

mybatis.mapper-locations=classpath:com/zldc/weekly/**/mapper/*.xml

# 掃描dto 將包內的JAVA類的類名作爲類別名

mybatis.typeAliasesPackage=com.zldc.weekly.system.dto

 

###########################LOG################################################

logging.level.org.springframework.web=DEBUG

logging.level.org.springboot.sample=TRACE

logging.level.org.springframework=WARN

logging.level.com.zldc.weekly.mapper=DEBUG

 

application-dev.properties

# 啓動熱部署

spring.thymeleaf.cache=false

 

#############################Mysql###################################

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zldcpt?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.username=root

spring.datasource.mysql.password=123456

三、SpringBoot啓動程序

StartApp.java

package com.zldc.weekly;

 

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.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.boot.web.support.SpringBootServletInitializer;

import org.springframework.context.annotation.Bean;

import org.springframework.web.servlet.DispatcherServlet;

 

import com.zldc.weekly.common.filter.BaseFilter;

 

/**

 * SpringBoot啓動程序

 *

 * @author hrc

 * @date 2018109

 */

@EnableAutoConfiguration

@MapperScan("com.zldc.weekly.**.mapper")

public class StartApp extends SpringBootServletInitializer {

    @Override

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

       return builder.sources(StartApp.class);

    }

 

    public static void main(String[] args) {

       SpringApplication.run(StartApp.class, args);

    }

 

    /**

     * 給訪問路徑加後綴

     * @param dispatcherServlet

     * @return

     */

    @Bean

    public ServletRegistrationBean myDispatcherServlet(DispatcherServlet dispatcherServlet) {

       ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet);

       registration.addUrlMappings("*.action");

       return registration;

    }

 

    /**

     * 項目基礎過濾器(需要自己寫一個過濾器)

     * @return

     */

    @Bean

    public FilterRegistrationBean baseFilterRegistration() {

       FilterRegistrationBean registration = new FilterRegistrationBean();

       registration.setFilter(new BaseFilter());

       registration.addUrlPatterns("/*");

       registration.addInitParameter("paramName", "paramValue");

       registration.setName("baseFilterRegistration");

       registration.setOrder(1);

       return registration;

    }

}

四、日誌文件配置

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

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

    <contextName>weekly</contextName>

    <!--輸出到控制檯-->

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>

            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>

        </encoder>

    </appender>

 

    <!--按天生成日誌-->

    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

          <Prudent>true</Prudent>

          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

               <FileNamePattern>

                    D://weeklyLogs/%d{yyyyMMdd}/weekly.log

               </FileNamePattern>

          </rollingPolicy>

          <layout class="ch.qos.logback.classic.PatternLayout">

               <Pattern>

                %d{yyyy-MM-dd HH:mm:ss} -%msg%n   

               </Pattern>

          </layout>

    </appender>

   

    <root level="debug,debug">

        <appender-ref ref="console" />

        <appender-ref ref="logFile" />

    </root>

 

</configuration>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章