搭建可运行的spring-security多模块工程项目java
工程目录结构:
spring-security
├── spring-security-app-- app模块代码
├── spring-security-core-- 核心业务逻辑
├── spring-security-demo-- 样例模块逻辑
└── spring-security-web-- web模块代码mysql
使用idea建立spring-security父工程
选择maven不勾选archetype
输入maven坐标
本地存储位置 web
右键父工程:module选择maven工程
输入子工程的maven坐标
选择本地存储路径在父工程存储路径下redis
<dependencyManagement> <dependencies> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>Brussels-SR4</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins></build>
<!--引入依赖:不用写version;dependencyManagement中的io.spring.platform;org.springframework.cloud作了统一管理\--> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-oauth2</artifactId> </dependency> <!--<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--三方登陆\--> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-config</artifactId> </dependency> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-core</artifactId> </dependency> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-security</artifactId> </dependency> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-web</artifactId> </dependency> <!--公共模块\--> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <!--processor--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency> </dependencies>
<dependencies> <dependency> <groupId>com.yxm.security</groupId> <artifactId>spring-security-core</artifactId> <version>${project.version}</version> </dependency></dependencies>
<dependencies> <dependency> <artifactId>spring-security-web</artifactId> <groupId>com.yxm.security</groupId> <version>${project.version}</version> </dependency></dependencies>
<!--core中已经引入相关依赖了,咱们直接引入core--> <dependencies> <dependency> <groupId>com.yxm.security</groupId> <artifactId>spring-security-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> </dependency></dependencies>
### 3.运行项目
在spring-security-demo中
新建包:com.yxm.security
新建类:DemoApplication
添加注解:@SpringBootApplication、@RestController
添加main方法和测试方法:以下:spring
@SpringBootApplication @RestController public class DemoApplication { public static void main(String\[\] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping("/hello") public String hello(){ return "hello spring security"; } }
运行报错:Cannot determine embedded database driver class for database type NONEsql
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/oa?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai data-username: root data-password: root
运行报错:
关闭spring.sessionapache
spring: #关闭spring session否则会报错 session: store-type: none
而后正常启用demo项目:访问:http://127.0.0.1:8088/hello
出现以下:session
springBoot下spring-security默认配置下 访问接口须要要求验证:咱们关闭认证app
security: basic: enabled: false
访问:http://127.0.0.1:8088/hello
输出:hello spring security maven
咱们此时执行父工程maven命令:mvn clean package
而后咱们发现工程大小为3kb不可执行
为了让demo能够打成运行的jar包,咱们在demo的pom.xml文件里面添加配置:
<build> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.3.3.RELEASE</version> <executions> <execution> <goals> <!--能够把项目按照SpringBoot特有的方式来进行打包为fileNmae的包--> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
以上工程搭建完毕。