基于spring boot和mongodb打造一套完整的权限架构(二)【MAVEN依赖以及相应配置】

释放双眼,带上耳机,听听看~!

       在上一章我们已经新建好整个项目了,在本章我们将讲解我们的这套权限架构所需要的maven依赖以及相关的配置,大家打开我们的pom.xml增加完maven依赖以后的配置文件如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4   <modelVersion>4.0.0</modelVersion>
5
6   <groupId>com.mongo</groupId>
7   <artifactId>csdn</artifactId>
8   <version>0.0.1-SNAPSHOT</version>
9   <packaging>jar</packaging>
10
11  <name>csdn</name>
12  <description>基于mongodb开发的用户权限架构</description>
13
14  <parent>
15      <groupId>org.springframework.boot</groupId>
16      <artifactId>spring-boot-starter-parent</artifactId>
17      <version>2.0.1.RELEASE</version>
18      <relativePath/> <!-- lookup parent from repository -->
19  </parent>
20
21  <properties>
22      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24      <java.version>1.8</java.version>
25      <org.mapstruct.version>1.1.0.Final</org.mapstruct.version>
26  </properties>
27
28  <dependencies>
29      <dependency>
30          <groupId>org.springframework.boot</groupId>
31          <artifactId>spring-boot-starter-web</artifactId>
32      </dependency>
33
34      <dependency>
35          <groupId>org.springframework.boot</groupId>
36          <artifactId>spring-boot-starter-test</artifactId>
37          <scope>test</scope>
38      </dependency>
39
40      <dependency>
41          <groupId>org.springframework.boot</groupId>
42          <artifactId>spring-boot-starter-data-mongodb</artifactId>
43      </dependency>
44
45      <dependency>
46          <groupId>com.spring4all</groupId>
47          <artifactId>mongodb-plus-spring-boot-starter</artifactId>
48          <version>1.0.0.RELEASE</version>
49      </dependency>
50
51
52      <dependency>
53          <groupId>io.springfox</groupId>
54          <artifactId>springfox-swagger2</artifactId>
55          <version>2.6.1</version>
56      </dependency>
57
58      <dependency>
59          <groupId>io.springfox</groupId>
60          <artifactId>springfox-swagger-ui</artifactId>
61          <version>2.6.1</version>
62      </dependency>
63
64      <!-- 开启spring-security的支持 -->
65      <dependency>
66          <groupId>org.springframework.boot</groupId>
67          <artifactId>spring-boot-starter-security</artifactId>
68      </dependency>
69      <!-- 开启thymeleaf的spring-security的支持 -->
70      <dependency>
71          <groupId>org.thymeleaf.extras</groupId>
72          <artifactId>thymeleaf-extras-springsecurity4</artifactId>
73      </dependency>
74
75      <!-- 表示对thymeleaf模板不再是用默认的HTML5标准来做严格限制 -->
76      <dependency>
77          <groupId>net.sourceforge.nekohtml</groupId>
78          <artifactId>nekohtml</artifactId>
79          <version>1.9.22</version>
80      </dependency>
81
82      <!-- 添加对thymeleaf的支持 -->
83      <dependency>
84          <groupId>org.springframework.boot</groupId>
85          <artifactId>spring-boot-starter-thymeleaf</artifactId>
86      </dependency>
87
88      <dependency>
89          <groupId>org.springframework.boot</groupId>
90          <artifactId>spring-boot-devtools</artifactId>
91          <optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
92      </dependency>
93
94      <!-- 引入json的依赖 classifier必须要加这个是json的jdk的依赖-->
95      <dependency>
96          <groupId>net.sf.json-lib</groupId>
97          <artifactId>json-lib</artifactId>
98          <version>2.4</version>
99          <classifier>jdk15</classifier>
100     </dependency>
101
102
103     <dependency>
104         <groupId>org.springframework.boot</groupId>
105         <artifactId>spring-boot-starter-aop</artifactId>
106     </dependency>
107
108 </dependencies>
109
110 <build>
111     <plugins>
112         <plugin>
113             <groupId>org.springframework.boot</groupId>
114             <artifactId>spring-boot-maven-plugin</artifactId>
115         </plugin>
116         <!-- 增加mapstruct自动编译实现生成impkl文件 -->
117         <plugin>
118             <groupId>org.apache.maven.plugins</groupId>
119             <artifactId>maven-compiler-plugin</artifactId>
120             <version>3.5.1</version>
121             <configuration>
122                 <source>1.8</source>
123                 <target>1.8</target>
124                 <annotationProcessorPaths>
125                     <path>
126                         <groupId>org.mapstruct</groupId>
127                         <artifactId>mapstruct-processor</artifactId>
128                         <version>${org.mapstruct.version}</version>
129                     </path>
130                 </annotationProcessorPaths>
131             </configuration>
132         </plugin>
133     </plugins>
134 </build>
135
136
137</project>
138
139

       1、在resource目录底下创建一个application-dev.properties配置文件,同时打开该配置文件增加mongodb数据库配置如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1spring.data.mongodb.database=test
2spring.data.mongodb.host=192.168.44.128
3spring.data.mongodb.port=27017
4spring.data.mongodb.username=csdn
5spring.data.mongodb.password=csdn123
6
7# 最小连接数
8spring.data.mongodb.option.min-connection-per-host=10
9# 最大连接数
10spring.data.mongodb.option.max-connection-per-host=200
11spring.data.mongodb.option.threads-allowed-to-block-for-connection-multiplier=5
12spring.data.mongodb.option.server-selection-timeout=30000
13spring.data.mongodb.option.max-wait-time=120000
14spring.data.mongodb.option.max-connection-idle-time=0
15spring.data.mongodb.option.max-connection-life-time=0
16spring.data.mongodb.option.connect-timeout=10000
17spring.data.mongodb.option.socket-timeout=0
18
19spring.data.mongodb.option.socket-keep-alive=false
20spring.data.mongodb.option.ssl-enabled=false
21spring.data.mongodb.option.ssl-invalid-host-name-allowed=false
22spring.data.mongodb.option.always-use-m-beans=false
23
24spring.data.mongodb.option.heartbeat-socket-timeout=20000
25spring.data.mongodb.option.heartbeat-connect-timeout=20000
26spring.data.mongodb.option.min-heartbeat-frequency=500
27spring.data.mongodb.option.heartbeat-frequency=10000
28spring.data.mongodb.option.local-threshold=15
29
30

      2、接着在application.properties配置文件中增加以下配置:


1
2
3
4
5
6
7
1spring.profiles.active=dev
2
3#配置放行的目录和方法
4security.ignored=/api/*,/css/*,/js/*,/images/*,/fonts/*,/font-awesome/*
5#表示对thymeleaf模板不再是用默认的HTML5标准来做严格限制
6spring.thymeleaf.mode = LEGACYHTML5
7

     3、 在我们的主入口类CsdnApplication 上增加@EnableMongoPlus注解如下所示:


1
2
3
4
5
6
7
8
9
1@SpringBootApplication
2@EnableMongoPlus
3public class CsdnApplication {
4
5   public static void main(String[] args) {
6       SpringApplication.run(CsdnApplication.class, args);
7   }
8}
9

      4、增加日志文件记录功能我们需要在resource目录底下创建logback-spring.xml文件用来记录我们的mongodb执行的nosql语句的信息,以及相应的日志,内容如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1<?xml version="1.0" encoding="UTF-8"?>
2<configuration  scan="true" scanPeriod="60 seconds" debug="false">
3    <contextName>logback</contextName>
4    <!--输出到控制台-->
5    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
6        <encoder>
7            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
8        </encoder>
9    </appender>
10
11    <!--按天生成日志-->
12    <appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
13        <Prudent>true</Prudent>
14        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
15            <FileNamePattern>
16                applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
17            </FileNamePattern>
18        </rollingPolicy>
19        <layout class="ch.qos.logback.classic.PatternLayout">
20            <Pattern>
21                %d{yyyy-MM-dd HH:mm:ss} -%msg%n
22            </Pattern>
23        </layout>
24    </appender>
25
26    <!-- 需要扫描日志的包 -->
27    <logger name="org.springframework.data.mongodb.core" level="DEBUG" additivity="false">
28        <!-- 日志会加载到控制台 -->
29        <appender-ref ref="console"/>
30        <!-- 日志会加载到日志文件中 -->
31        <appender-ref ref="logFile" />
32    </logger>
33
34    <!-- 将所有的错误信息保存到日志文件中 -->
35    <root level="ERROR">
36        <appender-ref ref="logFile" />
37        <appender-ref ref="logFile" />
38    </root>
39
40
41</configuration>
42

      到此我们已经完成了整个权限架构的maven依赖的引入、mongodb数据库的连接池的配置、mongodb日志记录以及spring security放行目录的配置,下一章我们将开始集成swagger2、以及我们的基础开发工具类。

       到此为止的GitHub项目地址:https://github.com/185594-5-27/csdn/tree/master-base-2

上一篇文章地址:基于spring boot和mongodb打造一套完整的权限架构(一)

下一篇文章地址:基于spring boot和mongodb打造一套完整的权限架构(三)【抽象实现类和swagger的实现】

QQ交流群:578746866

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索