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.rhkb.cn/news/101359.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式-观察者模式

观察者模式 ● 行为设计模式,允许对象存在的一种一对多的关系 ● 当一个对象发生变化,所有依赖他的对象都会得到通知并自动更新。 ● 在这种模式中,发生状态变化的对象叫作“主题”,依赖他的对象被称为“观察者” 观察者例子的简…

【VS】InstallerProjects.vsix下载 Microsoft Visual Studio Installer Projects (2022)

InstallerProjects.vsix 是微软官方提供的winform程序打包工具,但是国内下载安装有时候比较慢。虽然只有5m左右,但是国内就是下载不下来。现将官网地址和下载后的百度网盘共享地址展示如下:方便大家使用 官方地址:https://market…

再JAVA中如何使用qsort对类进行排序?

目录 结论&#xff1a; 解析&#xff1a; 结论&#xff1a; import java.util.Arrays;class Person implements Comparable<Person>{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic Stri…

# Lua与C++交互(二)———— 交互

C 调用lua 基础调用 再来温习一下 myName “beauty girl” C想要获取myName的值&#xff0c;根据规则&#xff0c;它需要把myName压入栈中&#xff0c;这样lua就能看到&#xff1b;lua从堆栈中获取myName的值&#xff0c;此时栈顶为空&#xff1b;lua拿着myName去全局表中查…

通讯录管理系统

1、简介 最近在学习C&#xff0c;通过观看黑马的教程进行学习&#xff0c;本文主要对通讯录管理系统的内容进行代码复现笔记&#xff0c;方便以后复习与使用&#xff0c;也方便大家复制使用&#xff0c;节约学习时间。 2、显示函数界面 2.1 函数框架 #include<iostream&…

冠达管理:非银金融是什么?

非银金融&#xff08;Non-banking Financial Institutions&#xff0c;简称非银&#xff09;是指除了传统的银行以外的其他金融机构。与银行不同的是&#xff0c;非银金融机构没有颁发钱银的权利&#xff0c;但在金融市场中发挥着重要的效果。在全球范围内&#xff0c;非银金融…

Spring Boot 集成 WebSocket 实现服务端推送消息到客户端

WebSocket 简介 WebSocket 协议是基于 TCP 的一种新的网络协议&#xff0c;它实现了浏览器与服务器全双工&#xff08;full-duplex&#xff09;通信—允许服务器主动发送信息给客户端&#xff0c;这样就可以实现从客户端发送消息到服务器&#xff0c;而服务器又可以转发消息到客…

MySQL不停重启问题

MySQL不停的自动杀掉自动重启 看一下log日志 my.cnf 里配置的 log_error /var/log/mysqld.log vim /var/log/mysqld.log 报的错误只是 [ERROR] Cant start server: Bind on TCP/IP port: Address already in use [ERROR] Do you already have another mysqld server …

数据结构之——(手撕)顺序表

本章会介绍的知识点如下图&#xff1a; 1&#xff1a; 顺序表的概念&#xff1a;顺序表是用一段物理地址连续的存储单元依次存储数据的线性结构&#xff0c;通常我们使用数组来表示&#xff0c;对数组进行增删查改。 顺序表的结构&#xff1a;逻辑结构与物理结构都是内存中一块…

⛳ Docker 安装 MySQL

&#x1f38d;目录 ⛳ Docker 安装 MySQL&#x1f69c; 一、搜索 mysql , 查看版本&#x1f3a8; 二、拉取mysql镜像&#x1f463; 三、建立容器的挂载文件&#x1f9f0; 四、创建mysql配置文件&#xff0c;my.conf&#x1f3ed; 五、根据镜像产生容器&#x1f381; 六、远程连…

node_modules.cache是什么东西

一开始没明白这是啥玩意&#xff0c;还以为是npm的属性&#xff0c;网上也没说过具体的来源出处 .cache文件的产生是由webpack4的插件cache-loader生成的&#xff0c;node_modules里下载了cache-loader插件&#xff0c;很多朋友都是vuecli工具生成的项目&#xff0c;内置了这部…

elelementui组件

一、按钮 1、按钮样式 使用type、plain、round和circle属性来定义 Button 的样式。 2、主要代码 <el-row><el-button>默认按钮</el-button><el-button type"primary">主要按钮</el-button><el-button type"success">…

【计算机网络】日志与守护进程

文章目录 日志日志的创建logmessage 函数日志左边部分实现日志右边部分实现 完整代码log.hpp(整体实现)err.hpp (错误信息枚举&#xff09; 守护进程PGID SID TTY 的介绍shell中控制进程组的方式结论 为什么要有守护进程存在&#xff1f;守护进程的创建使用守护进程的条件守护进…

2023国赛数学建模A题B题C题D题资料思路汇总 高教社杯

本次比赛我们将会全程更新思路模型及代码&#xff0c;大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022年数学建模c题思路_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛a题题目_UST数模…

前端通信(渲染、http、缓存、异步、跨域)自用笔记

SSR/CSR&#xff1a;HTML拼接&#xff1f;网页源码&#xff1f;SEO/交互性 SSR &#xff08;server side render&#xff09;服务端渲染&#xff0c;是指由服务侧&#xff08;server side&#xff09;完成页面的DOM结构拼接&#xff0c;然后发送到浏览器&#xff0c;为其绑定状…

浅谈泛在电力物联网发展形态与技术挑战

安科瑞 华楠 摘 要&#xff1a;泛在电力物联网是当前智能电网发展的一个方向。首先&#xff0c;总结了泛在电力物联网的主要作用和价值体现&#xff1b;其次&#xff0c;从智能电网各个环节概述了物联网技术在电力领域的已有研究和应用基础&#xff1b;进而&#xff0c;构思并…

手机无人直播软件,有哪些优势?

近年来&#xff0c;随着手机直播的流行和直播带货的市场越来越大&#xff0c;手机无人直播软件成为许多商家开播带货的首选。在这个领域里&#xff0c;声音人无人直播系统以其独特的优势&#xff0c;成为市场上备受瞩目的产品。接下来&#xff0c;我们将探讨手机无人直播软件给…

基于jeecg-boot的flowable流程加签功能实现

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 今天我…

uni-app打包后安卓不显示地图及相关操作详解

新公司最近用uni-app写app&#xff0c;之前的代码有很多问题&#xff0c;正好趁着改bug的时间学习下uni-app。 问题现象&#xff1a; 使用uni-app在浏览器调试的时候&#xff0c;地图是展示的&#xff0c;但是打包完成后&#xff0c;在app端是空白的。咱第一次写app&#xff…

视频云存储/安防监控EasyCVR视频汇聚平台分发rtsp流时,出现“用户已过期”提示该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…