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.0</modelVersion>
  //當前項目的名稱 <groupId>dhcc.basicbusiness</groupId>
    <artifactId>dhcc-basicbusiness</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  //打包方式:jar、war <packaging>jar</packaging>

    <name>dhcc-basicbusiness</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
    //通過mybatis自動生成mapper.實體類。以及mapper.xml文件(具體的自動生成xml文件在下面的generatorConfig.xml中) <!-- Java接口和實體類 -->
        <targetJavaProject>${basedir}/src/main/java</targetJavaProject>
        <targetMapperPackage>com.basicbusiness.mapper</targetMapperPackage>
        <targetModelPackage>com.dhcc.comment.entity</targetModelPackage>
        <!-- XML生成路徑 -->
        <targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject>
        <targetXMLPackage>mybatis</targetXMLPackage>
        <!-- 依賴版本 -->
        <mapper.version>3.4.0</mapper.version>
        <mybatis.version>3.3.1</mybatis.version>
        <mybatis.spring.version>1.2.4</mybatis.spring.version>
        <pagehelper.version>4.1.1</pagehelper.version>

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

        <!--spring session 與redis應用基本環境配置,需要開啟redis后才可以使用,不然啟動Spring boot會報錯 -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
      <!--注冊器 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
      <!-數據庫連接池--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
      <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency>
      <!--日志--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <!-- 引入log4j2依賴 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
      <!--oracle數據庫依賴-->
      <!--oracle驅動需要通過mavn命令生成到本地mavn倉庫,才可以這么引入
命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar
       -->
<dependency> <groupId>oracle</groupId> <artifactId>ojdbc14</artifactId> <version>11.2.0.4</version> </dependency>
      <!--springboot測試依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>com.vaadin.external.google</groupId> <artifactId>android-json</artifactId> <version>0.0.20131108.vaadin1</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.6.0</version> </dependency>
      <!--對第三方jar的依賴-->
    
<dependency>
    <groupId>sigar</groupId>
    <artifactId>sigar</artifactId>
    <version>1.1.8</version>
    <scope>system</scope>
     <systemPath>${project.basedir}/src/main/resources/lib/sigar.jar</systemPath>
     </dependency>

      <!--對其他項目的依賴-->
<dependency> <groupId>com.dhcc</groupId> <artifactId>dhcc-comment</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build>
     <!-- 將引用的第三方jar,非mavn依賴也打進要打的jar中 -->
    
<resources>
    <resource>
        <!-- 第三方jar所在的路徑-->
    <directory>src/main/resources/lib</directory>
    <targetPath>BOOT-INF/lib/</targetPath>
    <includes>
    <include>**/*.jar</include>
    </includes>
    </resource>
    <resource>
     <directory>src/main/resources</directory>
     <targetPath>BOOT-INF/classes/</targetPath>
    </resource>
    </resources>
        <plugins>
            <!-- 此插件用來生成通用mapper的代碼 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
            <!--自動生成跟數據庫相對應的實體,接口以及xml配置文件-->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${mapper.version}</version> </dependency> </dependencies> </plugin>
        <!--將該項目打包成可執行的jar的插件-->
<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest>
                 <!--該項目的啟動類-->
<mainClass>com.basicbusiness.DhccBasicbusinessApplication</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.7.RELEASE</version> </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>
   <!--location:數據庫驅動包在本地的位置-->
    <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>
        <!--生成Model類存放位置-->
        <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}"/>
        <!--生成Dao類存放位置-->
        <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
                             type="XMLMAPPER"/>
        <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
        <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<Object, Object> 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(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM