Springboot 项目pom.xml 配置文件以及启动类的一些配置

1.pom.xml

复制代码
xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
  //当前项目的名称
    <groupId>dhcc.basicbusinessgroupId>
    <artifactId>dhcc-basicbusinessartifactId>
    <version>0.0.1-SNAPSHOTversion>
  //打包方式:jar、war
    <packaging>jarpackaging>

    <name>dhcc-basicbusinessname>
    <description>Demo project for Spring Bootdescription>

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

    <properties>
    //通过mybatis自动生成mapper.实体类。以及mapper.xml文件(具体的自动生成xml文件在下面的generatorConfig.xml中)
        
        <targetJavaProject>${basedir}/src/main/javatargetJavaProject>
        <targetMapperPackage>com.basicbusiness.mappertargetMapperPackage>
        <targetModelPackage>com.dhcc.comment.entitytargetModelPackage>
        
        <targetResourcesProject>${basedir}/src/main/resourcestargetResourcesProject>
        <targetXMLPackage>mybatistargetXMLPackage>
        
        <mapper.version>3.4.0mapper.version>
        <mybatis.version>3.3.1mybatis.version>
        <mybatis.spring.version>1.2.4mybatis.spring.version>
        <pagehelper.version>4.1.1pagehelper.version>

        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <java.version>1.8java.version>
        <spring-cloud.version>Dalston.SR4spring-cloud.version>
    properties>
//引入的所有依赖包
    <dependencies>

        
        <dependency>
            <groupId>org.springframework.sessiongroupId>
            <artifactId>spring-session-data-redisartifactId>
        dependency>
      
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-eurekaartifactId>
        dependency>
      -->
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>
      
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.3.1version>
        dependency>
      
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starterartifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-starter-loggingartifactId>
                exclusion>
            exclusions>
        dependency>

        <dependency> 
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-log4j2artifactId>
        dependency>
      
      
        <dependency>
            <groupId>oraclegroupId>
            <artifactId>ojdbc14artifactId>
            <version>11.2.0.4version>
        dependency>
      
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>com.google.code.gsongroupId>
            <artifactId>gsonartifactId>
            <version>2.8.1version>
        dependency>
        <dependency>
            <groupId>javax.persistencegroupId>
            <artifactId>persistence-apiartifactId>
            <version>1.0version>
        dependency>
        <dependency>
            <groupId>com.vaadin.external.googlegroupId>
            <artifactId>android-jsonartifactId>
            <version>0.0.20131108.vaadin1version>
        dependency>
        <dependency>
            <groupId>io.jsonwebtokengroupId>
            <artifactId>jjwtartifactId>
            <version>0.6.0version>
        dependency>
      
     <dependency>
        <groupId>sigargroupId>     <artifactId>sigarartifactId>     <version>1.1.8version>     <scope>systemscope>      <systemPath>${project.basedir}/src/main/resources/lib/sigar.jarsystemPath>      dependency>
      
        <dependency>
            <groupId>com.dhccgroupId>
            <artifactId>dhcc-commentartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>
    dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>${spring-cloud.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
        dependencies>
    dependencyManagement>

    <build>
     
    <resources>
        <resource>         
            <directory>src/main/resources/libdirectory>     <targetPath>BOOT-INF/lib/targetPath>     <includes>     <include>**/*.jarinclude>     includes>     resource>     <resource>      <directory>src/main/resourcesdirectory>      <targetPath>BOOT-INF/classes/targetPath>     resource>     resources>
        <plugins>
            
            <plugin>
                <groupId>org.mybatis.generatorgroupId>
                <artifactId>mybatis-generator-maven-pluginartifactId>
                <version>1.3.2version>
                <configuration>
            
                    <configurationFile>${basedir}/src/main/resources/generatorConfig.xmlconfigurationFile>
                    <overwrite>trueoverwrite>
                    <verbose>trueverbose>
                configuration>
                <dependencies>
                    <dependency>
                        <groupId>tk.mybatisgroupId>
                        <artifactId>mapperartifactId>
                        <version>${mapper.version}version>
                    dependency>
                dependencies>
            plugin>
        
            <plugin>
                <artifactId>maven-assembly-pluginartifactId>
                <configuration>
                    <appendAssemblyId>falseappendAssemblyId>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependenciesdescriptorRef>
                    descriptorRefs>
                    <archive>
                        <manifest>
                 
                            <mainClass>com.basicbusiness.DhccBasicbusinessApplicationmainClass>
                        manifest>
                    archive>
                configuration>
                <executions>
                    <execution>
                        <id>make-assemblyid>
                        <phase>packagephase>
                        <goals>
                            <goal>assemblygoal>
                        goals>
                    execution>
                executions>
            plugin>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <version>1.5.7.RELEASEversion>
            plugin>
        plugins>
    build>


project>

 
复制代码

2.自动生成跟数据相对应的实体、接口、xml映射文件的配置文件

复制代码
xml version="1.0" encoding="UTF-8"?>
DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
   
    <classPathEntry
            location="G:\Program Files\apache-maven-3.5.0\oracle\ojdbc14\11.2.0.4\ojdbc14-11.2.0.4.jar"/>
    <context id="Oracle" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="mergeable" value="false">property>
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        plugin>
        
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                        connectionURL="jdbc:oracle:thin:@192.168.2.4:21521:orcl"
                        userId="wisdom"
                        password="wisdomdb">
        jdbcConnection>
        
        <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
        
        <sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}"/>
        
        <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
                             type="XMLMAPPER"/>
        
        <table tableName="TT_RESOURCE" domainObjectName="Resource">table>
    context>
generatorConfiguration>
复制代码

3.spring boot  的启动类:

复制代码
package dhccmfish.dhccmfish;

import com.corundumstudio.socketio.AuthorizationListener;
import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.HandshakeData;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.annotation.SpringAnnotationScanner;
import com.dhcc.comment.common.ComDef;
import com.dhcc.comment.config.JdbcDataSource;
import com.dhcc.comment.config.RedisConfig;
import com.dhcc.comment.log.LogWriter;
import com.dhcc.comment.util.BufferStream;
import com.dhcc.comment.util.FileManager;
import com.dhcc.comment.util.StringUtil;
import dhccmfish.dhccmfish.common.entity.ClientInfo;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.logging.log4j.LogManager;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
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.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.lang.reflect.Method;
import java.util.Map;
import java.util.Properties;
//启动注册器
@EnableDiscoveryClient
@EnableEurekaClient
//启动事物管理
@EnableTransactionManagement
//mybatis的接口扫描位置
@MapperScan("dhccmfish.dhccmfish.common.mapper")
//设置session有效时间
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = ComDef.SESSIOM_EXPIRE_TIMEOUT)
//启动该项目的时候不自动去找数据库的配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class DhccMfishApplication{
//实例化 RedisConnectionFactory 对象
    @Bean(name = "jedisConnectionFactory")
    public JedisConnectionFactory connectionFactory() {
        return RedisConfig.connectionFactory(4);
    }

    //  实例化 RedisTemplate 对象
    @Bean(name = "redistemplate")
    public RedisTemplate functionDomainRedisTemplate(@Qualifier(value = "jedisConnectionFactory") JedisConnectionFactory factory) {
        return RedisConfig.functionDomainRedisTemplate(factory);
    }
    /**
     * 生成key的策略(当缓存不写key的时候,会有一套规则自动生成相应的key)
     *
     * @return
     */
    @Bean
    public KeyGenerator keyGenerator() {
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                StringBuilder sb = new StringBuilder();
                sb.append(target.getClass().getName());
                sb.append(method.getName());
                for (Object obj : params) {
                    sb.append(obj.toString());
                }
                return sb.toString();
            }
        };
    }

    //缓存管理器
    @Bean
    public CacheManager cacheManager(@Qualifier(value = "redistemplate") RedisTemplate redisTemplate) {
        RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
        //设置缓存过期时间
        cacheManager.setDefaultExpiration(Integer.parseInt(ComDef.RdeisExpireTimeout));
        return cacheManager;
    }
    //数据库的配置
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return new org.apache.tomcat.jdbc.pool.DataSource();
    }
    //数据库对应mybatis的配置
    @Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    //mybatis的映射文件的位置
        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml"));
        return sqlSessionFactoryBean.getObject();
    }
    //数据库事物的配置
    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }


    public static void main(String[] args) {
     SpringApplication app = new SpringApplication(DhccMfishApplication.class);
        app.run();
    }
}

你可能感兴趣的:(springboot配置)