当前位置: 首页 > news >正文

SpringBoot(二)

 ###SpringBoot原理分析

###SpringBoot监控

###SpringBoot项目部署

#SpringBoot自动配置

Condition:(条件)

Condition是在Spring4.0增加的条件判断功能,通过这个功能可以实现选择性的创建Bean操作

SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建RedisTemplate的?

Condition

 

 Condition判断的

案例:需求

在Spring的IOC容器中有一个User的Bean,现要求:

1.导入Jedis坐标后,加载该Bean,没导入,则不加载。

Object user = context.getBean(name:"user");

P(user);

 

 2.将类的判断定义为动态的。判断哪个字节码文件存在可以动态指定。

Condition-小结

1)定义条件类:自定义类实现Condition接口,重写matches方法,在matches方法中进行逻辑判断,返回boolean值。metches方法两个参数:

*context:上下文对象,可以获取属性值,获取类加载器,获取BeanGactory等。

*metadata:元数据对象,用于获取注解属性。

2)判断条件:在初始化Bean时,使用@Conditional(条件类。class)注解

  

*SpringBoot提供的常用条件注解·

1)ConditionalOnProperty:判断配置文件中是否有对应属性和值才初始化bean

2)ConditionalOnClass:判断环境中是否有对应字节码文件才初始化Bean

3)ConditionalOnMissingBean:判断环境中没有对应的Bean才初始化Bean

SpringBoot自动配置

切换内置web服务器

SpringBoot的web环境中默认使用tomcat作为内置服务器,其实SpringBoot提供了4种内置服务器供我们选择,我们可以很方便的进行切换。

 这个对应的是tomcat服务器

有四种服务器,

 

 

 如上图可以查看依赖的关系图:

自动配置:

@Enable*注解

 SpringBoot中提供了很多Enable开头的注解,这些注解都是用于动态启动某些功能的,而且底层原理是使用@Import注解导人的一些配置类,实现Bean的动态加载。

思考:SpringBoot工程是否可以直接获取jar包中定义的Bean?(不可以)

答:@SpringBootApplication里有一个注解@ComponentScan

这个注解扫描范围是当前引导类所在包及其子包

com.a.springbootenable

com.a.config

1)使用@ComponentScan扫描com.a.config包

2)可以使用@Import注解,加载类。这些类都会被Spring创建,并放入IOC容器。

3)可以对Imoprt注解进行封装。

 

案例:

@Import注解

@Enable*底层依赖于@Import注解导入一些类,使用@Import导入的类会被Spring加载到IOC容器中。而@Import提供4种用法:

1)导入Bean

2)导入配置类

3)导入ImportSelector实现类。一般用于加载配置文件中的类

4)导入ImportBeanDefinitionRegistrar实现类

@Import(User.class)

main{

ConfigurableApplicationContext context = SpringApplication.run(SpringbootEnableApplication.class)

User user = context.getBean(User.class);

P(user);

context.getBeanOfType(User.class);

P(map);

}

####SpringBoot自动配置的核心注解springbootAutoConfiguration

 自定义starter

 查redis的数据keys *

get.name

springboot监听机制

 

 

 

 json.cn这个网站把所有的信息复制到这里便于查看,复制于网页

 

 

 快捷选择依赖ops

 在server端加上一个注解

在客户端client要进行配置。

 

 配置端口号和所有的要开启的监控

欢迎界面的修改,在source下创建banner。txt

 

 过滤某些访问的请求次数

 这是线程,绿色的是在运行,黄色的是在等待

交替运行

 项目部署两种方式,jar包和war包

默认jar包 

启动

 打war包

 

 

修改启动类

 

 打包位置

 指定打包位置

启动

 

 放到tomcat里,然后启动tomcat

 

点击startup。bat启动

外置tomcat访问到了一只猫

 

虚拟目录发生了变化 

 感谢黑马的视频,哈哈

http://www.lryc.cn/news/135349.html

相关文章:

  • python脚本——批量将word文档转换成pdf文件
  • 自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:链的保存(序列化)与加载(反序列化)]
  • 机器学习:开启智能时代的重要引擎
  • ES搭建集群
  • # Lua与C++交互(二)———— 交互
  • 机器人焊接生产线参数监控系统理解需求
  • 前端基础(ES6 模块化)
  • 第七章,文章界面
  • HJ102 字符统计
  • Maven聚合项目(微服务项目)创建流程,以及pom详解
  • Android OkHttp 源码浅析一
  • 【Redis】——Redis基础的数据结构以及应用场景
  • SpringBoot+WebSocket搭建多人在线聊天环境
  • 推荐适用于不同规模企业的会计软件:选择最适合您企业的解决方案
  • Apache Zookeeper架构和选举机制
  • 车联网TCU USB的配置和使用
  • Linux系统USB摄像头测试程序(三)_视频预览
  • 目标检测任务数据集的数据增强中,图像水平翻转和xml标注文件坐标调整
  • 系统架构的演变
  • IDC发布《亚太决策支持型分析数据平台评估》报告,亚马逊云科技位列“领导者”类别
  • C#之OpenFileDialog创建和管理文件选择对话框
  • Java中使用MongoTemplate 简单操作MongoDB
  • [Mac软件]Pixelmator Pro 3.3.12 专业图像编辑中文版
  • 吴恩达 GPT Prompting 课程
  • gpt3.5写MATLAB代码剪辑视频,使之保留画面ROI区域
  • 设计模式二十一:状态模式(State Pattern)
  • 【校招VIP】产品思维能力之产品设计
  • 微信小程序卡片横向滚动竖图
  • SpringBoot项目(支付宝整合)——springboot整合支付宝沙箱支付 从极简实现到IOC改进
  • 【AIGC】一款离线版的AI智能换脸工具V2.0分享(支持图片、视频、直播)