SpringBoot建立maven多模塊項目java
詳細步驟:mysql
file->new -> projectgit
而後一路next便可,最後finishgithub
最後咱們看到建立後的項目只有項目名稱和pom.xml就對了:web
二:接下來建立咱們的多模塊mave子項目:spring
next -> finishsql
接下來能夠看到咱們的兩個子模塊就建立好了,而且這兩個子模塊的parent都是spring-security-auth數據庫
可是的話還差一點點,咱們是經過springboot建立多模塊的,是否是感受還少了點啥??哈哈。。apache
對的,咱們還須要一個子模塊做爲咱們springboot項目的啓動模塊,對於springboot項目的一些配置和啓動類是須要的安全
像上面添加子模塊的步驟同樣來到這個界面:
選擇咱們須要的一些依賴:
最後看到咱們的項目結構:
最後還須要配置模塊之間的依賴關係:
在咱們的父pom中添加模塊
父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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.dengwei</groupId> <artifactId>spring-security-auth</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-security-auth</name> <description>Demo project for Spring Boot</description> <modules> <module>springsecuritybasic</module> <module>securityjwtrestful</module> </modules> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> <java.version>1.8</java.version> </properties> <dependencies> <!--操做數據庫--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- Druid 數據庫鏈接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.5</version> </dependency> <!--mysql鏈接--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!-- MyBatis 分頁插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--配置文件xml或properties處理器--> <dependency> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-configuration-processor </artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </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-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
接下來咱們看一下關於啓動類的依賴以及配置:
由於剛纔咱們建立starter模塊並無把spring-security-auth做爲咱們的父類,因此須要改一下,即把parent更改爲
做爲一個啓動子模塊那麼確定須要依賴於全部的其餘子模塊,即上面截圖的依賴信息
starter模塊的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> <parent> <artifactId>spring-security-auth</artifactId> <groupId>com.dengwei</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.dengwei</groupId> <artifactId>starter</artifactId> <version>0.0.1-SNAPSHOT</version> <name>starter</name> <description>Demo project for Spring Boot</description> <dependencies> <dependency> <groupId>com.dengwei</groupId> <artifactId>security-jwt-restful</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.dengwei</groupId> <artifactId>spring-security-basic</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
最後在咱們的啓動類加上掃描包的註解便可:
接下來咱們看一下關於yml的配置(此配置是基於springboot1.5)
詳細配置:
server: port: 9000 context-path: '/crm' connection-timeout: 600000 #mybatis掃描的文件夾 mybatis: mapper-locations: classpath*:mapper/*Mapper.xml configuration: database-id: MySQL spring: activiti: database-schema-update: true http: multipart: max-file-size: 100MB max-request-size: 1000MB --- spring: profiles: dev datasource: druid: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.2.241:3306/crm-dev?useSSL=false&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false username: root password: ** filters: stat # 配置初始化大小、最小、最大 maxActive: 20 initialSize: 1 #配置獲取鏈接等待超時的時間 maxWait: 60000 minIdle: 1 #配置間隔多久才進行一次檢測,檢測須要關閉的空閒鏈接,單位是毫秒 timeBetweenEvictionRunsMillis: 6000 #配置一個鏈接在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 30000 #測試鏈接 validationQuery: select 'x' #申請鏈接的時候檢測,建議配置爲true,不影響性能,而且保證安全性 testWhileIdle: true #獲取鏈接時執行檢測,建議關閉,影響性能 testOnBorrow: false #歸還鏈接時執行檢測,建議關閉,影響性能 testOnReturn: false #是否開啓PSCache,PSCache對支持遊標的數據庫性能提高巨大,oracle建議開啓,mysql下建議關閉 poolPreparedStatements: true #開啓poolPreparedStatements後生效 maxOpenPreparedStatements: 20 #配置擴展插件,經常使用的插件有=>stat:監控統計 log4j:日誌 wall:防護sql注入 filter: stat: log-slow-sql: true slow-sql-millis: 2000 --- spring: profiles: test datasource: druid: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.2.241:3306/crm-test?useSSL=false&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false username: root password: ** filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 6000 minEvictableIdleTimeMillis: 30000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20
最後關於日誌的配置:
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <property name="LOG_FILE_NAME_PATTERN" value="logs/auth.%d{yyyy-MM-dd}.%i.log"/> <!-- 日誌格式 --> <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%c){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> <property name="FILE_LOG_PATTERN" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %c : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> <!--輸出到控制檯--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender> <!--輸出到文件--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE_NAME_PATTERN}</fileNamePattern> <!-- 日誌保留天數 --> <maxHistory>366</maxHistory> <!-- 日誌文件上限大小,達到指定大小後刪除舊的日誌文件 --> <totalSizeCap>2GB</totalSizeCap> <!-- 每一個日誌文件的最大值 --> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> </appender> <!-- region 根據不一樣的環境設置不一樣的日誌輸出級別 --> <springProfile name="default,local"> <root level="info"> <appender-ref ref="console"/> </root> <logger name="com.zhl" level="debug"/> </springProfile> <springProfile name="dev,test"> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> <logger name="com.zhl" level="debug"/> </springProfile> <springProfile name="product,pre"> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> <logger name="com.zhl" level="debug"/> </springProfile> <!-- endregion --> </configuration>
好的到此咱們的多模塊項目就搭建完成啦,是否是很簡單