美文网首页
Springboot多模块搭建 一WEB构建

Springboot多模块搭建 一WEB构建

作者: 尼尔君 | 来源:发表于2018-09-25 17:43 被阅读0次

    web

    项目结构

    image.png

    config目录

    缓存配置

    package com.project.web.config;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.cache.CacheManager;
    import org.springframework.cache.annotation.EnableCaching;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.cache.RedisCache;
    import org.springframework.data.redis.cache.RedisCacheConfiguration;
    import org.springframework.data.redis.cache.RedisCacheManager;
    import org.springframework.data.redis.cache.RedisCacheWriter;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    
    import java.time.Duration;
    
    @Slf4j
    @Configuration
    @EnableCaching
    public class CacheConfig {
    
        CacheManager cacheManager(RedisConnectionFactory connectionFactory)
        {
            RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
    
            RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig();
    
            defaultCacheConfig.entryTtl(Duration.ofSeconds(30));
    
    
            RedisCacheManager redisCacheManager = new RedisCacheManager(redisCacheWriter,defaultCacheConfig);
    
            return redisCacheManager;
    
        }
    }
    
    
    

    邮件配置

    package com.project.web.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    
    public class MailConfig {
    
        public JavaMailSenderImpl mailSender() {
            JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
    
            javaMailSender.setProtocol("smtp");
            javaMailSender.setHost("smtp.qq.com");
            javaMailSender.setUsername("xxxxxx@qq.com");
            javaMailSender.setPassword("xxxxxx");
            javaMailSender.setPort(465);
    
    
            return javaMailSender;
        }
    }
    
    
    

    mybatis配置

    package com.project.web.config;
    
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @MapperScan("com.project")
    public class MybatisConfig {
    
    }
    
    

    redis配置

    
    package com.project.web.config;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    import org.springframework.session.data.redis.config.ConfigureRedisAction;
    import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
    import org.springframework.session.web.http.CookieSerializer;
    import org.springframework.session.web.http.DefaultCookieSerializer;
    
    
    @Slf4j
    @Configuration
    @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 600)
    public class RedisConfig {
    
    
        /**
         *
         * 解决hashmap显示问题
         * @return
         */
    //    @Bean
    //    public RedisSerializer springSessionDefaultRedisSerializer() {
    //      //  new Jackson2JsonRedisSerializer<>(Object.class);
    //        return  new StringRedisSerializer();
    //    }
        @Primary
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
            redisTemplate.setConnectionFactory(connectionFactory);
            redisTemplate.setKeySerializer( new StringRedisSerializer());
            redisTemplate.setValueSerializer(new StringRedisSerializer());
            redisTemplate.setHashKeySerializer(new StringRedisSerializer());
            redisTemplate.setHashValueSerializer(new StringRedisSerializer());
            redisTemplate.afterPropertiesSet();
    
            return redisTemplate;
    
        }
    
        @Bean
        public static ConfigureRedisAction configureRedisAction() {
            return ConfigureRedisAction.NO_OP;
        }
    
    
    
    
        @Bean
        public CookieSerializer cookieSerializer(){
    
            DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
    
            cookieSerializer.setCookiePath("/");
    
            cookieSerializer.setCookieName("UserSessionID");
    
    
            cookieSerializer.setUseHttpOnlyCookie(true);
    
    
            return cookieSerializer;
    
    
    
        }
    }
    
    
    

    启动项

    
    package com.project.web;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication(scanBasePackages = "com.project")
    public class WebApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(WebApplication.class, args);
        }
    }
    
    

    mybatis自动生成插件配置

    
    <?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 >
        <!-- 设置mysql驱动路径 -->
        <classPathEntry location="F:\\java\\jar\\jar\\mysql-connector-java-5.1.46.jar" />
    
        <!-- 此处指定生成针对MyBatis3的相关类,xml -->
        <context id="context1" targetRuntime="MyBatis3">
    
            <!-- jdbc连接信息 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/boolib?characterEncoding=utf8" userId="root" password="root" />
    
            <!-- 生成vo对象  -->
            <javaModelGenerator targetPackage="com.project.model" targetProject="../pojo/src/main/java" >
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!--生成映射文件存放位置-->
            <sqlMapGenerator targetPackage="mapper" targetProject="../dao/src/main/resources/">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <!--生成Model类存放位置-->
            <javaClientGenerator
                    targetPackage="com.project.dao.mapper"
                    targetProject="../dao/src/main/java/" type="XMLMAPPER" />
    
            <table tableName="user"
                   domainObjectName="User"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false">
            </table>
        </context>
    </generatorConfiguration>
    
    

    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <settings>
            <setting name="callSettersOnNulls" value="true"/>
    
            <setting name="cacheEnabled" value="true"/>
    
            <setting name="lazyLoadingEnabled" value="true"/>
    
            <setting name="aggressiveLazyLoading" value="true"/>
    
            <setting name="multipleResultSetsEnabled" value="true"/>
    
            <setting name="useColumnLabel" value="true"/>
    
            <setting name="useGeneratedKeys" value="false"/>
    
            <setting name="autoMappingBehavior" value="PARTIAL"/>
    
            <setting name="defaultExecutorType" value="SIMPLE"/>
    
            <setting name="mapUnderscoreToCamelCase" value="true"/>
    
            <setting name="localCacheScope" value="SESSION"/>
    
            <setting name="jdbcTypeForNull" value="NULL"/>
    
        </settings>
    
        <typeAliases>
            <typeAlias alias="Integer" type="java.lang.Integer" />
            <typeAlias alias="Long" type="java.lang.Long" />
            <typeAlias alias="HashMap" type="java.util.HashMap" />
            <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
            <typeAlias alias="ArrayList" type="java.util.ArrayList" />
            <typeAlias alias="LinkedList" type="java.util.LinkedList" />
        </typeAliases>
    
    </configuration>
    
    

    properties

    server.port=80
    
    
    
    #配置数据库
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boolib
    spring.datasource.username=root
    spring.datasource.password=root
    
    
    #配置输出sql语句
    logging.level.com.project.dao=debug
    
    
    #配置mybatis
    
    mybatis.type-aliases-package=com.project.model
    
    mybatis.config-locations=classpath:mybatis/mybatis-config.xml
    
    mybatis.mapperLocations=classpath*:mapper/*.xml
    
    spring.redis.host=182.61.38.81
    
    spring.redis.port=6379
    
    spring.redis.database=0
    
    
    

    POM

    
    <?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>com.project</groupId>
        <artifactId>web</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>web</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>com.project</groupId>
            <artifactId>parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>com.project</groupId>
                <artifactId>service</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <mainClass>com.project.web.WebApplication</mainClass>
                        <layout>ZIP</layout>
                    </configuration>
    
                    <executions>
                        <execution>
                            <goals>
                                <goal>
                                    repackage
                                </goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    
                <!-- mybatis generator 自动生成代码插件 -->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <configurationFile>${basedir}/src/main/resources/config/generatorConfig.xml</configurationFile>
                        <overwrite>true</overwrite>
                        <verbose>true</verbose>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    
    </project>
    
    

    相关文章

      网友评论

          本文标题:Springboot多模块搭建 一WEB构建

          本文链接:https://www.haomeiwen.com/subject/aibloftx.html