首页 > 其他分享 >SpringBoot(二)

SpringBoot(二)

时间:2024-03-03 19:57:55浏览次数:21  
标签:SpringBoot Bean flag Jedis 注解 Class Condition

ⅤⅠⅠ springboot 原理

1. auto config

1.1 Condition: 选择性的创建bean
注入一个Bean:@Configuration Class 下
@Bean 方法返回一个User,就获得name = "user"的Bean
@Conditional(实现类.class) => 决定Spring是否创建这个Bean
【需求1】导入Jedis坐标后创建Bean,否则失败
Condition实现类:
@Override 方法中:
boolean flag = true;
try{
Class<?> cls = Class.forName("redis.clients.jedis.Jedis");
}catch{
flag = false;
}
return flag;
【实验】导入Jedis dependency,测试成功;否则失败
【需求2】判断变成动态
@自定义注解("任意坐标")
方法返回一个User

创建自定义注解=> 加上 @Conditional(实现类.class)、C里元注解
加上attr String[] value()

=> 这样param传递到metadata里的map里,"value":[...]

=> 到Condition实现类中获取metadata.getAnnotationAttributes拿到Map
---
@ConditionalOnProperty(name = "A", havingValue = "B")
在配置文件中有key为A,值为B的时候...

Condition小结:

 

标签:SpringBoot,Bean,flag,Jedis,注解,Class,Condition
From: https://www.cnblogs.com/sabertobih/p/18050562

相关文章

  • 如何学号SpringBoot
    如何学好SpringBoot框架的框架、底层基于Spring。能调整每一个场景的底层行为。100%项目一定会用到底层自定义摄影:傻瓜:自动配置好。单反:焦距、光圈、快门、感光度....傻瓜+单反:理解自动配置原理导入starter-->生效xxxxAutoConfiguration-->组件-->xxxProperties......
  • SpringBoot定时任务:使用shedlock解决SpringBoot分布式定时任务
    第一步:引入shedlock包maven中pom文件添加如下配置:<dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>4.33.0</version>使用其他版本</dependency>第二步:添加shedlock-p......
  • springboot应用中根据特定条件使用CommandLineRunner
    PS使用SpringBoot3.1.2进行测试1.使用@ConditionalOnProperty仅当特定属性存在或具有特定值时,注释@ConditionalOnProperty才会创建bean。在此示例中,仅当或文件中的CommandLineRunner属性db.init.enabled设置为true时才会执行application.propertiesapplication.ymlpac......
  • springboot将用户认证信息提取到上下文,获取用户实体
    @ServicepublicclassInfoServiceImplimplementsInfoService{@OverridepublicMap<String,String>getinfo(){//将用户认证信息从上下文中(SecurityContext)提取出来UsernamePasswordAuthenticationTokenauthenticationToken=......
  • SpringBoot
    SpringBoot特性快速创建独立Spring应用SSM:导包、写配置、启动运行直接嵌入Tomcat、JettyorUndertow(无需部署war包)【Servlet容器】linuxjavatomcatmysql:war放到tomcat的webapps下jar:java环境;java-jar重点:提供可选的starter,简化应用整合场景启动器(starter)......
  • springboot中实现一个接口
    实现一个接口,需要在service里写一个接口,写一个实现,在controller里写一个类chatgpt4.0:在Spring框架中,实现一个接口通常遵循一种分层的架构模式,这种模式涉及到至少三个主要部分:接口定义、服务层实现、以及控制器层。这个流程确保了应用程序的高内聚、低耦合特性,同时也符合Spring......
  • springboot 集成 Dataway
    1.Dataway简介Dataway是Hasor生态中的一员,它通过提供一个UI界面来帮助开发者完成接口配置、测试、冒烟和发布等一系列任务。用户可以在Dataway的界面中进行接口的配置,无需编写任何代码。Dataway底层基于DataQL服务聚合能力,通过DataQL语言实现接口的聚合和定义,从而消除了传统开发......
  • 关于druid与springboot版本问题
    datasource:druid:driver-class-name:${sky.datasource.driver-class-name}url:jdbc:mysql://${sky.datasource.host}:${sky.datasource.port}/${sky.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=u......
  • centos7环境用docker-compose部署mysql5.7集群,redis7.2.4,springboot项目
    文件目录结构关于每个配置项及docker-compose的安装,大家可以自己查mysql配置文件master---my.cnf[mysqld]server_id=1gtid-mode=ONenforce-gtid-consistency=1binlog-ignore-db=mysqllog-bin=mysql-binbinlog_cache_size=......
  • springboot两种配置文件的使用(举例:端口号、虚拟路径配置)
    1、properties配置文件使用   2、yml配置文件、yaml配置文件 在项目中更常用 在项目中一般yml配置文件更为常用,因为yml层级更加明确、清晰,更为关注数据。 ......