SpringBoot框架基础

javase:OOPMYSQL:持久化html+css+js+jquery+框架:视图Javaweb:独立开发MVC三层架构SSM:框架,配置复杂,开发流程简化【打war包,tomcat运行】SpringBoot:打jar包内嵌tomcat,微服务架构Springcloud;SpringBoot:①编写配置 yaml②自动装配原理③集成web开发,业务核心④集成数据库Druid⑤分布式开发Dubbo+zookeeper⑥swagger接口文档⑦任务调度⑧SpringSecuri
摘要由CSDN通过智能技术生成

javase:OOP
MYSQL:持久化
html+css+js+jquery+框架:视图
Javaweb:独立开发MVC三层架构
SSM:框架,配置复杂,开发流程简化【打war包,tomcat运行】
SpringBoot:打jar包内嵌tomcat,微服务架构
Springcloud;

SpringBoot:
①编写配置 yaml
②自动装配原理
③集成web开发,业务核心
④集成数据库Druid
⑤分布式开发Dubbo+zookeeper
⑥swagger接口文档
⑦任务调度
⑧SpringSecurity:Shiro

SpringCloud:
①微服务
②springcloud入门
③Restful风格
④Eureka服务注册与发现
⑤负载均衡Nginx,Feign
⑥HyStrix容灾
⑦Zuul 路由网关
⑧git

SpringBoot初始结构详解

官网:https://start.spring.io/直接下载的方法,记得选一个springweb的依赖,一般都是IDEA直接创建

自动装配的原理
pom.xml
spring-boot-dependencies:核心依赖在父工程中
我们在写引入springboot依赖的时候,就是因为有版本仓库

启动器
spring-boot-starter 是SpringBoot的启动场景;
比如spring-boot-starter-web,就会帮我们导入web环境所有的依赖
还有很多种类型的启动器,详情见官网

主方法中:
第一个,@SpringBootApplication :标注这个类是一个SpringBoot的应用,启动类下的所有资源被导入
点进去有两个:
① @SpringBootConfiguration
@Configuration : 标记当前类是一个spring配置类

				 			 @Component	:    是一个Spring的组件

		  ②     @EnableAutoConfiguration   开启这个类的自动配置
		  					@AutoConfigurationPackage			自动配置包【】
		  					
							@Import({AutoConfigurationImportSelector.class})		将所有符合条件的类配置信息导入

		③      ComponentScan   扫描主类所在的同级包以及下级包里的Bean

有一个jar包
Maven:org.springframework-boot:spring-boot-autoconfigure:2.2.0RELEASE
包下的META-INF文件中有一个spring.factories文件,里面记录了加载了所有的自动配置类

springboot的所有的自动配置都是在启动的时候扫描并加载:spring.factories所有的自动配置类
但是并不是全部都加载,要判断是否成立,只要导入了对应的start,就有对应的启动器,有了启动器,自动装配才会生效然后再配置成功

最关键的要属@Import(EnableAutoConfigurationImportSelector.class),借助EnableAutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器:通过@Import(AutoConfigurationImportSelector.class)导入的配置功能,
AutoConfigurationImportSelector中的方法getCandidateConfigurations,得到待配置的class的类名集合,这个集合就是所有需要进行自动配置的类,而是是否配置的关键在于META-INF/spring.factories文件中是否存在该配置信息

第二个,调用的主方法中,SpringApplication.run()是将springboot应用启动

SpringApplication.run(Springboot01HelloworldApplication.class, args);

这里其实是开启了一个服务,方法主要是SpringApplication的实例化和run方法的执行
SpringApplication实例化:
①主要是判断项目是普通项目还是web项目
②加载所有初始化器
③找出程序监听器
④推断main方法的定义类,找到运行的主类
run方法开启之后会开启一个服务

《全面接管SpringBoot的配置》

SpringBoot的配置

【配置文件】
application.yaml
语法结构:key:空格value
主要是针对SpringBoot的默认配置可以进行修改,对空格非常敏感

server:
  port:

#对象
student:
  name: zhangsan
  age: 3

#行内写法
student1: {
   name: lisi,age: 3}

#数组
pets:
  - cat
  - dog
  - pig
pets2: [cat,dog,pig]

【yaml可以直接给实体类进行赋值@ConfigurationProperties(prefix = “xx”)】

在SpringbootApplication类的同级创建POJO目录并创建两个实体类【注意一定在有参构造已写的情况下要写无参构造】
并且在resources下创建application.yaml配置文件做出相应类的配置,注意一定要与实体类属性对应【实测如配置多写一样可以实例化】
测试方法进行测试
实体类:

//这个是标明它是游离控制业务持久层外的Spring组件,请求框架一同进行注入
@Component

//这个是为了和yaml文件进行匹配,把名字传过去告诉框架这是它的属性请求注入
@ConfigurationProperties(prefix = "person")

public class Person {
   
    private String name;
    private int age;
    private boolean ishappy;
    private Date birth
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值