基於spring boot和mongodb打造一套完整的許可權架構(二)【MAVEN依賴以及相應配置】
阿新 • • 發佈:2019-01-27
在上一章我們已經新建好整個專案了,在本章我們將講解我們的這套許可權架構所需要的maven依賴以及相關的配置,大家開啟我們的pom.xml增加完maven依賴以後的配置檔案如下:
<?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.mongo</groupId> <artifactId>csdn</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>csdn</name> <description>基於mongodb開發的使用者許可權架構</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <org.mapstruct.version>1.1.0.Final</org.mapstruct.version> </properties> <dependencies> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>com.spring4all</groupId> <artifactId>mongodb-plus-spring-boot-starter</artifactId> <version>1.0.0.RELEASE</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <!-- 開啟spring-security的支援 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- 開啟thymeleaf的spring-security的支援 --> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity4</artifactId> </dependency> <!-- 表示對thymeleaf模板不再是用預設的HTML5標準來做嚴格限制 --> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> <!-- 新增對thymeleaf的支援 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional><!-- optional=true,依賴不會傳遞,該專案依賴devtools;之後依賴myboot專案的專案如果想要使用devtools,需要重新引入 --> </dependency> <!-- 引入json的依賴 classifier必須要加這個是json的jdk的依賴--> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- 增加mapstruct自動編譯實現生成impkl檔案 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build> </project>
1、在resource目錄底下建立一個application-dev.properties配置檔案,同時開啟該配置檔案增加mongodb資料庫配置如下:
spring.data.mongodb.database=test spring.data.mongodb.host=192.168.44.128 spring.data.mongodb.port=27017 spring.data.mongodb.username=csdn spring.data.mongodb.password=csdn123 # 最小連線數 spring.data.mongodb.option.min-connection-per-host=10 # 最大連線數 spring.data.mongodb.option.max-connection-per-host=200 spring.data.mongodb.option.threads-allowed-to-block-for-connection-multiplier=5 spring.data.mongodb.option.server-selection-timeout=30000 spring.data.mongodb.option.max-wait-time=120000 spring.data.mongodb.option.max-connection-idle-time=0 spring.data.mongodb.option.max-connection-life-time=0 spring.data.mongodb.option.connect-timeout=10000 spring.data.mongodb.option.socket-timeout=0 spring.data.mongodb.option.socket-keep-alive=false spring.data.mongodb.option.ssl-enabled=false spring.data.mongodb.option.ssl-invalid-host-name-allowed=false spring.data.mongodb.option.always-use-m-beans=false spring.data.mongodb.option.heartbeat-socket-timeout=20000 spring.data.mongodb.option.heartbeat-connect-timeout=20000 spring.data.mongodb.option.min-heartbeat-frequency=500 spring.data.mongodb.option.heartbeat-frequency=10000 spring.data.mongodb.option.local-threshold=15
2、接著在application.properties配置檔案中增加以下配置:
spring.profiles.active=dev
#配置放行的目錄和方法
security.ignored=/api/*,/css/*,/js/*,/images/*,/fonts/*,/font-awesome/*
#表示對thymeleaf模板不再是用預設的HTML5標準來做嚴格限制
spring.thymeleaf.mode = LEGACYHTML5
3、 在我們的主入口類CsdnApplication 上增加@EnableMongoPlus註解如下所示:
@SpringBootApplication @EnableMongoPlus public class CsdnApplication { public static void main(String[] args) { SpringApplication.run(CsdnApplication.class, args); } }
4、增加日誌檔案記錄功能我們需要在resource目錄底下建立logback-spring.xml檔案用來記錄我們的mongodb執行的nosql語句的資訊,以及相應的日誌,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</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>
applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} -%msg%n
</Pattern>
</layout>
</appender>
<!-- 需要掃描日誌的包 -->
<logger name="org.springframework.data.mongodb.core" level="DEBUG" additivity="false">
<!-- 日誌會載入到控制檯 -->
<appender-ref ref="console"/>
<!-- 日誌會載入到日誌檔案中 -->
<appender-ref ref="logFile" />
</logger>
<!-- 將所有的錯誤資訊儲存到日誌檔案中 -->
<root level="ERROR">
<appender-ref ref="logFile" />
<appender-ref ref="logFile" />
</root>
</configuration>
到此我們已經完成了整個許可權架構的maven依賴的引入、mongodb資料庫的連線池的配置、mongodb日誌記錄以及spring security放行目錄的配置,下一章我們將開始整合swagger2、以及我們的基礎開發工具類。
QQ交流群:578746866