spring入门
- 什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。
这就是Java企业级应用->J2EE->spring->springboot的过程。
- Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。
Spring Boot的主要优点:
- 为所有Spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
开发
pom.xml
父依赖
其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件!
点进去,发现还有一个父依赖
org.springframework.boot spring-boot-dependencies 2.2.5.RELEASE ../../spring-boot-dependencies1、1依赖配置
这里才是真正管理SpringBoot应用里面所有依赖版本的地方,SpringBoot的版本控制中心;
版本自动仲裁
以后我们导入依赖默认是不需要写版本;但是如果导入的包没有在依赖中管理着就需要手动配置版本了;
如果没有自动仲裁 ? 就需要自己配定版本号
1、 2 自动配置
- 自动配置好了springMVC。
- 自动配置好web:SpringBoot帮我们配置好了所有web开发的常见场景
- 默认包结构:在主程序包同包或者子包。
1、 主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来。
2、 无需以前的包扫描配置。
3、想要改变扫描路径,@SpringBootApplication(scanBasePackages= “com.atquiqu”)
- 各种配置拥有默认值
默认配置最终都是映射到MultipartProperties
配置文件的值最终会绑定每个类上,这个类会在容器中创建对象
- 按需加载所有自动配置项
2 容器功能
2.1、组件添加
注解详解
- 1、@Configuration
1、配置类里面使**@Bean标注在方法上给容器注册组件,默认也是单实例的 。
2、配置类本身也是组件 proxyBeanMethods:代理bean的方法。
3、proxyBeanMethods: 代理bean的方法 :
** Full (proxyBeanMethods = true) 、
Lite( proxyBeanMethods = false)
解决主键依赖
@Configuration( proxyBeanMethods = true) 告诉SpringBoot这是一个配置类==配置文件: 代理对象调用方法。
原生配置文件引入
2、@ImportResource 导入资源 可以引入spring的配置文件
@Import({User.class, DBHelper.class}) 给容器中自动创建出这两个类型的组件(调用其无参构造),默认组件的名字是组件的全类名。
3、Conditionaln
条件装配:满足Condional指定的条件, 则进行组件注入
@ConditionalonBean(name = “tom”) :加上这个注解的类、方法的,只有容器中有tom这个组件时,才会生效,否则都不生效。
@Conditional0nMissingBean(name = “tom”):加上这个注解的类、方法的,容器中没有tom这个组件时,才会生效,否则都不生效。
2、3配置绑定
方法一:加载到容器中
第一步、java代码
第二部、在 .properties文件中的配置
方法二:开启配置绑定功能
全局时间格式化
以上两种后端格式化的实现都有一个致命的缺点,它们在进行时间格式化的时候,都需要对核心业务类做一定的修改,这就相当为了解决一个问题,又引入了一个新的问题,那有没有简单一点、优雅一点的解决方案呢?
答案是:有的。我们可以不改任何代码,只需要在配置文件中设置一下就可以实现时间格式化的功能了。
首先,我们找到 Spring Boot 的配置文件 application.properties(或 application.yml),只需要在 application.properties 配置文件中添加以下两行配置:
# 格式化全局时间字段
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 指定时间区域类型
spring.jackson.time-zone=GMT+8