Java框架-SpringBoot

本文详细介绍了SpringBoot的核心概念,包括其作为一站式解决方案的定位、优点,如简化配置、集成生态、内置服务器等。深入讲解了Spring Boot Starters、核心注解以及自动配置的工作原理。同时,讨论了配置加载,特别是Yaml的特点和优势。在安全方面,提到了Spring Security和跨域问题的解决方案,如CSRF和CORS。
摘要由CSDN通过智能技术生成

1. 概述

1.1 是什么

答:SpringBoot是Spring组件的一站式解决方案,并不是独立框架,是用来简化Spring配置,提供各种启动器,让开发者能快速上手的。

1.2 优点

  • 容易上手,开箱即用,提升开发效率;
  • 能和Spring生态系统集成;
  • 遵循默认配置,提供了一系列通用的非业务性功能;
  • 内置http服务器,如tomcat、jetty,开发web应用更加轻松;
  • maven配置直接写入,有效避免冲突。

1.3 Spring Boot Starters

答:Spring Boot Starters是一系列依赖关系的集合。

  • 内部提供了XXXAutoConfiguration的自动化配置类;
  • 通过条件注解来决定一个配置是否生效,同时提供一系列的默认配置
  • 之后通过类型安全的属性注入将这些配置属性注入容器,新注入的属性会代替掉默认属性。

1.4 核心注解

答:@SpringBootApplication可以看作是由三个注解的集合。

  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能,允许在上下文注册bean。
  • @EnableAutoConfiguration:打开自动配置的功能。
  • @ComponentScan:扫描@Component(@Server,@Controller)的bean。

1.5 jar包区别

答:Spring Boot打包成的jar是可执行的,通过 java -jar xxx.jar 命令运行,不能作为普通的jar包被项目依赖使用。

  • Spring Boot的jar包解压后,代码在\BOOT-INF\classes 目录下。
  • 可以在pom.xml文件中增加配置,将项目打包成两个jar ,一个可执行,一个可引用。

2. 配置

2.1 自动配置

答:自动配置的核心就是@EnableAutoConfiguration, @Conditional注解。

  1. @EnableAutoConfiguration,通过@Import注解导入自动配置方法类AutoConfigurationImportSelector。该类中将所有自动配置类信息以list返回,同时被容器当作bean管理。(META-INF/spring.factories文件)
  2. @Conditional,类似if条件为true就执行后续,如@ConditionalClass指定类必须存在类路径下,@ConditionalOnBean容器中有指定Bean。

总结:EnableAutoConfiguration实现配置信息的导入,Conditional用来指定此类需要的配置信息。

2.2 配置加载方式

答:properties文件,yaml文件,系统环境变量,命令行参数。

2.3 Yaml

2.3.1 概述

答:yaml是一种可读性友好的数据序列化语言,常用来作为配置文件。

2.3.2 优点

答:配置有序;支持数组;简洁结构化。但不支持注解导入自定义的yaml配置。

3. 安全

3.1 Spring Security

答:官方提供的安全管理框架,添加依赖后,项目的所有接口都被保护,必须登陆后才能访问。通过继承WebSecurityConfigurerAdapter接口,实现登录配置、密码加密、拦截访问等等一系列功能。

@Override
protected void configure(HttpSecurity http) throws Exception {
   
    //开启登陆配置
    http.authorizeRequests()
            //访问/hello接口,且有admin的角色
            .antMatchers("/hello").hasRole("admin")
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值