Spring security实战(2)-----搭建SpringBoot

     编写Spring Boot启动类

package com.rz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/***
 * 启动类
 */
@SpringBootApplication  //告诉程序是个spring boot项目
@RestController  //表示这是一个提供restful风格服务的类
public class DemoApplication {


    /***
     * spring标准启动方式
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }

    @GetMapping("/hello")
    public String hello(){
        return "hello spring security";
    }
}

     这样我们可以运行第一个SpringBoot项目了,但是还有一点小错误:

     可能出现的问题:
          Cannot determine embedded database driver class for database type NONE
     原因:maven依赖中添加了jdbc驱动,但是项目里面没有指定具体的数据库连接
     解决方法:在resources目录下新建application.yml文件,添加以下内容:

spring:
  datasource:
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    url: jdbc:mysql://192.168.0.137:3306/test_zq?useUnicode=true&characterEncoding=utf-8

     可能出现的问题:
          No Spring Session store is configured: set the ‘spring.session.store-type’ property
      原因:maven依赖中添加了spring-session的依赖,但是spring session的存储没有被配置
     解决方法:暂时在application.yml文件中关闭,添加以下内容:

spring:
  datasource:
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    url: jdbc:mysql://192.168.0.137:3306/test_zq?useUnicode=true&characterEncoding=utf-8
  session:
    store-type: none
server:
  port: 80

     现在项目可以进行访问了,但是系统会默认弹出一个http basic的身份认证框,这是由于maven中依赖了Spring Security的jar包,默认是开启身份认证的,有两种方式可以解决:
1.在application.yml中添加配置:

security:
  basic:
    enabled: false

2.在每次项目启动的时候,用户名是user,系统会自动生成一个密码,类似下面这样的:

Using default security password: 86d43b9f-7926-43a3-bffa-6b238c54a65b

     项目打包:
          方式一:在idea的右侧选择Maven Projects,选择父工程rz-security下的Lifecycle下的package命令。
             方式二:点击右上角的点击Edit Configurations…图标,然后点击“+”号,选中maven,选择好项目路径,在name中自定义命令名,在Command line填写执行命令,完成即可运行。
             这两者方式都会在每一个工程下下的target文件夹下生成一个jar包文件,但是这些jar包是不符合要求的,不能运行,我们这个工程是war包工程,这样打包有许多依赖的jar包没有打进来,我们需要的是一个可执行的jar包文件
     解决办法:
          在rz-security-demo的pom.xml文件中添加插件,它会按照Springboot特有的方式进行打包会生成一个可执行jar包

<?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">
    <parent>
        <artifactId>rz-security</artifactId>
        <groupId>com.rz.security</groupId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../rz-security/pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>rz-security-demo</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.rz.security</groupId>
            <artifactId>rz-security-browser</artifactId>
            <version>${rz-security-version}</version>
        </dependency>
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
      </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.7.0</version>
    </dependency>
    <!-- wiremock -->
    <dependency>
          <groupId>com.github.tomakehurst</groupId>
          <artifactId>wiremock</artifactId>
    </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.3.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <finalName>demo</finalName>
    </build>  <!--最终jar包名-->

</project>

     其实我们可以在命令行启动可执行jar包:先进入jar包的所在目录,然后输入:

java -jar demo.jar

     这样项目启动 了,它和在idea中 main函数中启动是一样的
     说明:Springboot是不需要tomcat运行环境的,相反tomcat内嵌在可执行jar包里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值