SpringBoot整合Web框架

SpringBoot整合Web框架

SpringBoot整合Web框架_第1张图片

Spring Boot可以轻松创建独立的、基于Spring的生产级应用程序
它可以让你“运行即可”。
大多数Spring Boot应用程序只需要少量的Spring配置。

SpringBoot自动生成部分内容:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootWeb20220311Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootWeb20220311Application.class, args);
    }

}

一:一站式开发

当我们写好我们的SpringBoot的时候,直接就可以运行,无需配置

二:数据注入方式

1.先准备一个外部注入Student实体类

public class Student {
    private int age;
    private String name;
    private String sex;



    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

2.数据注入测试


import com.example.entry.Student;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

@Controller
public class MainController {
//    直接给数据源头赋值
    @Value("魏振华")
//    写入数据源
    @Resource
    String name;



//    requesMapping测试地址:index,
    @RequestMapping("/index")
    @ResponseBody
    public String index(){
        return "你好,欢迎访问"+name;//这里的name是用来测试数据注入是否成功
    }

//    这里用于测试直接注入的student数据
    @RequestMapping("/student")
    @ResponseBody
    public Student Student(){
        Student student=new Student();
        student.setAge(12);
        student.setName("wei");
        student.setSex("男");
        return student;
    }


}

三:SpringBoot整合security

1.导入依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

此时我们再次访问我们的网址会自动进行security操作,控制台会自动生成一个用户名和密码用我们使用
导入依赖后,我们直接启动SpringBoot应用程序,可以发现SpringSecurity已经生效了。
并且SpringSecurity会自动为我们生成一个默认用户user,它的密码会出现在日志中:

2022-01-06 23:10:51.329  INFO 2901 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-01-06 23:10:51.329  INFO 2901 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.56]
2022-01-06 23:10:51.350  INFO 2901 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-01-06 23:10:51.351  INFO 2901 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 341 ms
2022-01-06 23:10:51.469  INFO 2901 --- [           main] .s.s.UserDetailsServiceAutoConfiguration : 

Using generated security password: ff24bee3-e1b7-4309-9609-d32618baf5cb


其中ff24bee3-e1b7-4309-9609-d32618baf5cb就是随机生成的一个密码,我们可以使用此用户登录。

我们也可以在配置文件中直接配置:

2.在properties文件中更改security账号密码

spring.security.name=user
spring.security.user.password=123456

实际上这样的配置方式就是一个inMemoryAuthentication,只是我们可以直接配置而已。
当然,页面的控制和数据库验证我们还是需要提供WebSecurityConfigurerAdapter的实现类去完成:

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/login").permitAll()
                .anyRequest().hasRole("user")
                .and()
                .formLogin();
    }
}


注意这里不需要再添加@EnableWebSecurity了,因为starter依赖已经帮我们添加了。

使用了SpringBoot之后,我们发现,需要什么功能,只需要导入对应的starter依赖即可,甚至都不需要你去进行额外的配置,你只需要关注依赖本身的必要设置即可,大大提高了我们的开发效率。

你可能感兴趣的:(Java,spring,IDEA,spring,boot,前端,java)