SpringBoot 第一课(Ⅲ) 配置类注解
目录
一、@PropertySource
二、@ImportResource
①SpringConfig (Spring框架全注解)
②@ImportResource注解实现
三、@Bean
四、多配置文件
多Profile文件的使用
文件命名约定:
激活Profile:
YAML文件支持多文档块:
五、配置加载位置优先级
对于SpringBoot项目来说,有3种常用来绑定指定配置文件的注解:@PropertySource,@ImportResource和@Bean。
想看默认配置绑定看这篇:SpringBoot 第一课(Ⅱ)配置文件注入-CSDN博客文章浏览阅读500次,点赞7次,收藏14次。需要为每个属性单独指定,适用于简单的配置或单个属性的注入。属性上,Spring Boot 会处理这种命名风格的差异。使用@ConfigurationProperties注入。),而松散绑定支持这三种名字互通,就比如配置文件里的。允许一次性注入整个对象,适用于复杂的配置结构。Java中常见命名规则有驼峰命名法(实现上面操作后,就可以通过访问“使用注解时,在处理复杂情况时,
https://blog.csdn.net/m0_74977981/article/details/146282864?spm=1001.2014.3001.5501
一、@PropertySource
配置文件
在里面编写:
student1.name=admin
student1.age=20
student1.id=1
Java实体类
package com.qcby.entity1;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;@Component
@PropertySource(value="classpath:student1.properties")
@ConfigurationProperties(prefix="student1")
public class Student1 {private String name;private int age;private int id;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic String toString() {return "Student1{" +"name='" + name + '\'' +", age=" + age +", id=" + id +'}';}
}
现在我们需要测试这个类:
在test路径下测试:
注意这里SpringBoot项目在创建时会自动生成这么一个test类(如下):
为了方便查看,我们再在它旁边创建一个StudentTest类:
package com.qcby.sbdemotest01;import com.qcby.entity1.Student1;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** 从Spring Boot 2.2版本开始,@SpringBootTest 已经包含了 SpringRunner 的功能,* 因此在大多数情况下,工程师不再需要显式地使用 @RunWith(SpringRunner.class)。*/
//@RunWith(SpringRunner.class)
//我用的是2.7.0,所以不用显式这一行【我在这里显式加上它的话,日志会报错警告(虽然能用吧)】(但是要知道有这么一个注释)
@SpringBootTest
public class StudentTest {@AutowiredStudent1 student1;@Testvoid contextLoads() {System.out.println(student1);}}
得到结果:
注意: 在Spring中,
classpath
是一个特殊的路径前缀,在SpringBoot项目中,默认代表的根目录一般是src/main/resources。
①规范情况
即假设一个项目的目录结构是:
src/ ├── main/ │ ├── java/ │ │ └── com/example/Student1.java │ └── resources/ │ ├── student1.properties │ └── beans.xml
那么会在实体类中这么书写:
@PropertySource("classpath:config.properties")
②嵌套子目录
src/ ├── main/ │ ├── java/ │ │ └── com/example/Student1.java │ └── resources/ │ └── config/ │ ├── student1.properties │ └── beans.xml
此时在实体类中定义时,就要加上目录路径前缀:
@PropertySource("classpath:config/config.properties")
不只是@PropertySource,其他用到
classpath
的地方同样遵循这个准则。
二、@ImportResource
在讲@ImportResource这里时,结合Spring框架全注解实现配置一起。
详文参照:Spring(二)---基于注解的方式实现Bean管理和注入属性_有没有注解可以实现bean动态注入,配置项打开注入,关闭则剔除-CSDN博客文章浏览阅读488次,点赞9次,收藏6次。①:注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)②:使用注解,注解作用在类上面,方法上面,属性上边③:使用注解的目的:简化XML配置。_有没有注解可以实现bean动态注入,配置项打开注入,关闭则剔除
https://blog.csdn.net/m0_74977981/article/details/144626708?spm=1001.2014.3001.5501
①SpringConfig
(Spring框架全注解)
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ComponentScan;@Configuration
@ComponentScan(value = "com.qcby")
public class SpringConfig {
}
-
@Configuration
注解:标识这是一个配置类,Spring容器会扫描这个类中定义的Bean。 -
@ComponentScan
注解:指定Spring容器扫描的包。在这个例子中,Spring容器会扫描com.qcby
包及其子包中的所有Spring组件(如@Component
,@Service
,@Repository
等),并将它们注册为Spring容器中的Bean。
这种方式是基于Java的配置,它允许项目通过Java代码来定义Spring容器的配置(并且是范围性的)。
②@ImportResource注解实现
配置类
@Configuration
@ImportResource("classpath:applicationContext.xml")
public class AppConfig {// 配置类中的其他配置
}
resources路径下的:applicationContext.xml
<!-- applicationContext.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- <context:component-scan base-package="com.qcby" /> --><!-- 扫描可以选择范围扫描或是逐一注入 --><!-- 逐一声明Bean --><bean id="myBean" class="com.qcby.MyBean" />
</beans>
@Configuration
注解:同样标识这是一个配置类。-
@ImportResource
注解:用于导入一个XML配置文件。在这个例子中,它导入了类路径下的applicationContext.xml
文件。这种方式允许你将配置信息放在XML文件中,而不是Java代码中。
三、@Bean
在Spring Boot中,推荐使用全注解的方式来配置和添加组件到Spring容器中。这种方式不仅代码更简洁,而且易于维护和理解。下面我将详细解释如何使用 @Configuration
和 @Bean
注解来实现这一过程。
接口
package com.qcby.service;public interface HelloService {void sayHello();
}
Java实现类
package com.qcby.service;import org.springframework.stereotype.Service;@Service
public class SimpleHelloService implements HelloService {@Overridepublic void sayHello() {System.out.println("Hello, Spring Boot!");}
}
在这个例子中,SimpleHelloService
类被标记为 @Service
,这表示它是一个服务层组件,Spring会自动将其注册为一个Bean。
MyAppConfig类:
我们创建一个配置类 MyAppConfig
,并在其中使用 @Bean
注解来声明一个Bean。
package com.qcby.service;import com.qcby.service.HelloService;
import com.qcby.service.SimpleHelloService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;@Configuration
public class MyAppConfig {@Bean@Primary // 指定为首选beanpublic HelloService helloService02() {System.out.println("配置类@Bean给容器中添加组件了...");return new SimpleHelloService();}
}
在这个配置类中,我们使用 @Bean
注解声明了一个 HelloService
类型的Bean。这意味着Spring容器将创建一个 SimpleHelloService
实例,并将其注册为 HelloService
类型的Bean。
创建Test类确认是否调用正确:
package com.qcby.sbdemotest01;import com.qcby.service.HelloService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class HelloServiceTest {@Autowiredprivate HelloService helloService;@Testvoid contextLoads() {helloService.sayHello();}}
得到结果:
四、多配置文件
Spring Boot 支持多环境配置,允许为不同的环境(如开发、测试、生产等)创建不同的配置文件。这是通过使用不同的配置文件来实现的,这些文件可以是 .properties
格式或 .yml。
多Profile文件的使用
文件命名约定:
对于 .properties
文件,可以使用 application-{profile}.properties
来命名不同的配置文件。例如:
-
application-dev.properties
:开发环境的配置文件。 -
application-test.properties
:测试环境的配置文件。 -
application-prod.properties
:生产环境的配置文件。
默认情况下,如果没有指定环境,Spring Boot 会使用 application.properties
文件。
激活Profile:
可以通过多种方式激活特定的Profile:
-
在启动应用时,通过命令行参数指定:
java -jar your-application.jar --spring.profiles.active=dev 【终端】
-
在
application.properties
或application.yml
文件中指定:spring.profiles.active=dev【配置文件中】
-
在环境变量中设置:
export SPRING_PROFILES_ACTIVE=dev
(Linux/Mac)或set SPRING_PROFILES_ACTIVE=dev
(Windows)【操作系统级别】
YAML文件支持多文档块:
YAML文件支持多文档块方式,这意味着可以在一个YAML文件中定义多个配置块,每个块对应一个Profile。例如:
spring:profiles: devapplication:name: MyApplication---
spring:profiles: testapplication:name: MyTestApplication---
spring:profiles: prodapplication:name: MyProductionApplication
在这个例子中,我们定义了三个配置块,每个块对应一个不同的Profile(开发、测试、生产)。Spring Boot会根据激活的Profile加载相应的配置块。
五、配置加载位置优先级
Spring Boot在启动时会按照一定的顺序扫描并加载配置文件,这些配置文件的位置和优先级如下:
-
file:./config/
:项目根目录下的config
文件夹中。 -
file:./
:项目根目录中。 -
classpath:/config/
:类路径下的config
文件夹中。 -
classpath:/
:类路径根目录中。
Spring Boot会从这四个位置加载application.properties
或application.yml
文件作为默认配置文件,优先级由高到低,高优先级的配置会覆盖低优先级的配置。这意味着如果同一配置项在多个文件中出现,那么优先级高的文件中的配置将被使用。
/myproject
/src
/main
/java
/com
/yourcompany
/YourApplication.java
/resources
application.properties
/config
application.properties
application.properties
即:
相关文章:
SpringBoot 第一课(Ⅲ) 配置类注解
目录 一、PropertySource 二、ImportResource ①SpringConfig (Spring框架全注解) ②ImportResource注解实现 三、Bean 四、多配置文件 多Profile文件的使用 文件命名约定: 激活Profile: YAML文件支持多文档块ÿ…...
期望最大化(EM)算法
MLE (最大似然估计)是一种非常有效的参数估计方法,但当分布中有多余参数或数据为截尾或缺失时,其 MLE 的求取是比较困难的。于是 Dempster 等人于 1977 年提出了 EM 算法,其出发点是把求 MLE 的过程分两步走࿱…...
DeepSeek与人工智能:技术演进、架构解析与未来展望
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 1. DeepSeek技术全景解析1.1 DeepSeek技术定位1.2 核心技术组件 2. 人工智能发展路线2.1 技术…...
Keepalived 多主模型与 LVS 高可用
一.Keepalived多主模型 Keepalived多主模型概念 如上图,keepalived主从架构性能损耗较严重,如果业务分类明确,则可以配置keepalived多主模型降低损耗,两台keepalived互为主备,如:订单业务走keepalived1&am…...
AGI大模型(6):提示词模型进阶
1 零样本提示 如今,经过⼤量数据训练并调整指令的LLM能够执⾏零样本任务。 代码如下: from openai import OpenAI from dotenv import load_dotenv load_dotenv() # 初始化 OpenAI 服务。 client = OpenAI()prompt = """ 将⽂本分类为中性、负⾯或正⾯。 ⽂…...
群体智能优化算法-旗鱼优化算法 (Sailfish Optimizer, SFO,含Matlab源代码)
摘要 旗鱼优化算法(Sailfish Optimizer, SFO)是一种模拟旗鱼(Sailfish)和沙丁鱼(Sardine)之间捕食关系的新型元启发式算法。通过在搜索过程中模拟旗鱼对沙丁鱼的捕食行为,以及沙丁鱼群的逃逸与…...
适合企业内训的AI工具实操培训教程(37页PPT)(文末有下载方式)
详细资料请看本解读文章的最后内容。 资料解读:适合企业内训的 AI 工具实操培训教程 在当今数字化时代,人工智能(AI)技术迅速发展,深度融入到各个领域,AIGC(人工智能生成内容)更是成…...
用 Python 进行比特币数据分析:从入门到实战
用 Python 进行比特币数据分析:从入门到实战 前言 比特币,这个“数字黄金”,已经成为全球金融市场不可忽视的存在。无论是短线交易、长期投资,还是链上数据分析,都离不开数据的支撑。而 Python,作为数据分析的瑞士军刀,为我们提供了一整套强大的工具。 本篇文章将带你…...
CT重建笔记(四)——三维重建
人如果不思考不学习,天天刷短视频,跟咸鱼有什么区别? 平行的线积分数据(X射线变换) 平行光束图像重建的理论基础是中心切片定理(二维情形见我的博客https://leslielee.blog.csdn.net/article/details/134…...
蓝桥杯刷题周计划(第三周)
目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目代码题解分析 题目九题目代码题解分析 题目十题目代码题解分析 前言 大家好&#…...
Qt 控件概述 QWdiget 1.1
目录 qrc机制 qrc使用 1.在项目中创建一个 qrc 文件 2.将图片导入到qrc文件中 windowOpacity: cursor 光标 cursor类型 自定义Cursor font tooltip focusPolicy styleSheet qrc机制 之前提到使用相对路径的方法来存放资源,还有一种更好的方式…...
Type_ C和锂电池自切换电路
支持Type_ C和锂电池双供电的供电方案: Type_ C插入,PMOS关断,电池切断,后级电路由Type_ C供电; 锂电池插入,Type_ C不接的时候,PMOS导通,锂电池供电; 1、没有插入USB电…...
CTP开发爬坑指北(九)
CTP API开发中有很多需要注意的小细节,稍有不慎就会出问题,不然,轻则表现与预期不符,重则程序崩溃影响策略盈利。本系列将容易遇到的坑列出来,以供开发时参考,如有疑义之处,欢迎指正。 在国内期…...
算法之双指针
移动零 题目链接:https://leetcode.cn/problems/move-zeroes 题目的要求是不能改变原数组的非零元素的顺序,也不得再额外开个空间。 算法原理:将数组划分,数组分块。 将所有的非零元素移到左边,零元素移到右边。 方…...
关于ISP Pipeline LSC(镜头阴影校正)位置的一些想法
关于LSC校正的一些基本原理可以参考如下链接: ISP之LSC 【ISP】浅析Lens Shading ISP-镜头阴影校正(LSC) 这篇博文不打算讲具体的LSC校正原理。 主要是答复一位网友关于LSC校正在ISP Pipeline的问题。 网友问题如下: Rin_Cyn…...
x012-MSP430F249智能步进电动百叶窗_proteus_光敏电阻_步进电机_仿真
https://www.dong-blog.fun/post/1997 46 、智能步进电动百叶窗 基本要求: 用一台步进电机控制百叶窗叶片的旋转(正转/反转) 用 LED 数码管显示旋转角度 设置按键: 手动/自动切换、手动正转和手动反转,停止/启动键 用一…...
WordPress调用当前文章作者头像
制作wordpress博客主题时经常会到用,需要调用wordpress当前文章作者头像的时候,用下面的这段代码即可。 <?php if (have_posts()) : the_post(); update_post_caches($posts); ?> //wodepress.com <?php echo get_avatar( get_the_author_e…...
Mysql表的查询
一:创建一个新的数据库(companydb),并查看数据库。 二:使用该数据库,并创建表worker。 mysql> use companydb;mysql> CREATE TABLE worker(-> 部门号 INT(11) NOT NULL,-> 职工号 INT(11) NOT NULL,-> 工作时间 D…...
25.单例模式实现线程池
一、线程池的概念 1.1 线程池的介绍 线程池是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅…...
欢乐力扣:基本计算器
文章目录 1、题目描述2、思路代码括号 1、题目描述 基本计算器。 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 2、思路 本人也不太会,…...
app.config.globalProperties
目录 一:基础使用 1、简介 2、使用 3、打印结果: 二:封装 1、创建一个.ts文件(utils/msg.ts) 2、在main.ts中全局注册 3、在页面中使用 4、打印结果 一:基础使用 1、简介 app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性&…...
Javascript BOM,DOM 知识简介
JSON 一种数据交换格式,作为数据载体,传输数据, Json比xml 更简单,可读性更高.js的对象和Json可以相互转换. //json定义格式: var varName{"key1":value1,"key2":value2};value的数据类型为数字,字符串(在双引号中),布尔值,数组(在方括号中),对象(在花括…...
记第一次跟踪seatunnel的任务运行过程四——getJobConfigParser().parse()的动作
前绪 记第一次跟踪seatunnel的任务运行过程三——解析配置的具体方法getLogicalDag 正文 书接上文 ImmutablePair<List<Action>, Set<URL>> immutablePair getJobConfigParser().parse(null);在前一篇文章中说到getLogicDag()方法的第一行(如…...
鸿蒙APP采用WebSocket实现在线实时聊天
本文配套视频: 鸿蒙APP基于websocket实时聊天功能_哔哩哔哩_bilibili 1. 案例环境: 鸿蒙APP采用ArkTS语法编写,API14环境,DevEco Studio 5.0.7.210编辑器开发后台接口基于SpringBoot,后台前端基于Vue开发核心技术采用…...
【2步解决】phpstudy开机自启(自动启动phpstudy、mysql、nignx或apache、自动打开网址)
重启执行最终效果图: 一、场景 线下部署,需要开启自动动,并打开网址http://localhost/。 二、操作步骤 ①、新建start.txt,并修改为start.bat,使用记事本编辑,粘贴上方代码如下: echo off:…...
一周学会Flask3 Python Web开发-SQLAlchemy删除数据操作-班级模块
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 首页list.html里加上删除链接: <!DOCTYPE html> <html lang"en"> <head><meta c…...
从过拟合到强化学习:机器学习核心知识全解析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
uniapp-x 之useAttrs只读
数据类型: useAttrs在web端拿到的是obj,app拿到的是map 是否可以修改内部元素: 否,只读 这意味着你想这样写代码将会无效 let attrsuseAttrs();console.log("attrs",attrs, attrs instanceof Map)//appif(attrs ins…...
MySQL 8 主从同步安装与配置
拟机,由 CentOS 换成了 Ubuntu,用 Xteminal 连接之后,为了方便改配置文件,把文件权限改成 666 了,结果因为这个调半天,一直以为是网络问题或者是配置问题。要注意为了防止配置文件被未经授权的用户修改&…...
【人工智能】人工智能安全(AI Security)
人工智能安全(AI Security) 是指保障人工智能系统免受各种攻击、滥用和错误操作的措施与技术。随着人工智能的广泛应用,AI的安全性问题变得越来越重要。AI安全不仅关注系统本身的稳定性与安全性,还涉及到如何确保AI的决策和行为是…...
Shp文件转坐标并导出到Excel和JSON(arcMap + excel)
思路总结: 准备: 一个shp文件 (单个面, 多个面建议使用Python代码, 自己弄太复杂) 使用arcMap工具, 将面通过 要素折点转点 工具转为点 Shp文件转坐标 (Python) 第一步: 这样就得到了一个点文件. 第二步: 得到x, y坐标 使用工具添加xy坐标 这样在属性表中就会多出两列 第…...
【数据结构】线性表简介
0.本篇问题 线性表,顺序表,链表什么关系?它们是逻辑结构还是存储结构?线性表的基本操作有哪些? 线性表是具有相同数据元素的有限序列。 表中元素有先后次序,每个元素占有相同大小的存储空间。 一、线性…...
基于FPGA的制冷型红外成像电路设计(论文+图纸)
1.总体设计 对于本次课题基于FPGA的制冷型红外成像电路设计,其主要包括两个功能,第一就是红外图像的显示,第二就是红外图像中各点温度的测量。首先对于红外图像的显示来说,一般根据红外探测器根据阵列的大小可以显示出不同的清…...
Spring Boot 集成 Lua 脚本:实现高效业务逻辑处理
1. 前言 1.1 什么是Lua Lua是一种轻量级、高性能的脚本语言,常用于游戏开发、嵌入式系统、配置文件解析等领域。Lua语法简洁,易于学习和使用,且具有强大的扩展性。 1.2 Spring Boot与Lua集成的意义 将Lua集成到Spring Boot应用中,可以实现动态配置业务逻辑、简化复杂业…...
cursor使用
引入私有文档 设置-> Features->下滑找到Docs url后边多加一个 / 可以拉取url下所有的页面(子页面,子目录),不加只拉取url当前页面 使用 选择 Docs 回车 选择 文档 直接解析链接 链接 回车 搜索引擎 web 对比git版本差异 git 选择其中一个 g…...
时间序列预测(十九)——卷积神经网络(CNN)在时间序列中的应用
有关CNN的介绍可以参考以下博文: 卷积神经网络(CNN)详细介绍及其原理详解-CSDN博客 三万字硬核详解:卷积神经网络CNN(原理详解 项目实战 经验分享)_cnn卷积神经网络-CSDN博客 CNN笔记:通俗…...
uniapp-x js 限制
1.String(str) 不允许,android模拟室报错,找不到String 2.JSON.parse不接受泛类型 export const genData function<T> (initData:T) : T {return JSON.parse<T>(JSON.stringify(initData))!;//不可以,必须明确类型 } error: …...
Matlab 基于磁流变阻尼器的半主动车辆座椅悬架模糊控制研究
1、内容简介 略 Matlab 175-基于磁流变阻尼器的半主动车辆座椅悬架模糊控制研究 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
QQuick3D-Model的实例化
QQuick3D-Model的实例化 Model的实例化 Model类继承于Node类;如果想让一个Model(模型)可以渲染,至少需要一个Mesh(网格)和material(材质)Mesh(网格):Qt内置了矩形(Rectangle&#…...
二分算法刷题
1. 初识 总结:二分算法题的细节非常多,容易写出死循环。使用算法的条件不一定是数组有序,而是具有“二断性”;模板三种后面会讲。 朴素二分二分查找左端点二分查找右端点 2. 朴素二分 题目链接:704. 二分查找 - 力扣…...
# RAG 框架 # 一文入门 全链路RAG系统构建与优化 —— 架构、策略与实践
本文全面阐述了RAG系统从数据收集、数据清洗(包括领域专有名词处理)、智能数据分块与QA对生成,到向量化、向量数据库选择与配置,再到检索方式及重排序,直至整合输出、监控反馈和安全保障的全流程。通过这一完整方案&am…...
网络运维学习笔记(DeepSeek优化版) 017 HCIA-Datacom综合实验02
文章目录 综合实验2sw3sw4gwcore1(sw1)core2(sw2)ISP 综合实验2 sw3 vlan 2 stp mode stp int e0/0/1 port link-type trunk port trunk allow-pass vlan 2 int e0/0/2 port link-type trunk port trunk allow-pass vlan 2 int e…...
Flutter——Android与Flutter混合开发详细教程
目录 1.创建FlutterModule项目,相当于Android项目里面的module库;2.或者编辑aar引用3.创建Android原生项目3.直接运行跑起来 1.创建FlutterModule项目,相当于Android项目里面的module库; 2.或者编辑aar引用 执行 flutter build a…...
java手机号、邮箱、日期正则表达式
Java正则核心API Java中用 java.util.regex 包的两个类: Pattern:编译正则表达式Matcher:执行匹配操作 1. 验证手机号 String regex "1[3-9]\\d{9}"; boolean isValid "18812345678".matches(regex); // true2. 提取…...
0x04.若依框架微服务开发(含AI模块运行)
微服务本地开发硬件资源有限,所以会将核心微服务组件先部署在服务器上比如:mysql,redis,注册中心Nacos,网关Gateway,认证中心Auth和upms模块以及低代码生成模块。 mysql、redis部署前篇已讲,这…...
数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)
数据库管理302期 2025-03-14 数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314)1 Oracle RAC2 DMDSC3 YAC4 KES RAC总结 数据库管理-第302期 国产类RAC架构数据库网络连接方式(20250314) 作者:胖头鱼的鱼…...
ctf web入门知识合集
文章目录 01做题思路02信息泄露及利用robots.txt.git文件泄露dirsearch ctfshow做题记录信息搜集web1web2web3web4web5web6web7web8SVN泄露与 Git泄露的区别web9web10 php的基础概念php的基础语法1. PHP 基本语法结构2. PHP 变量3.输出数据4.数组5.超全局变量6.文件操作 php的命…...
CSS3-流星雨
1. 绘制标签 <div class"container"><span></span> </div>2. 设置div背景 在百度上搜索一幅星空的图片 <style>* {/* 初始化 */margin: 0;padding: 0;}body {/* 高度100% */height: 100vh;/* 溢出隐藏 */overflow: hidden;}.contai…...
【leetcode hot 100 199】二叉树的右视图
解法一:层级遍历,右侧看到的节点就是每一层最后一个元素 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }…...
Unity进阶课程【二】Mask 组件的使用 UI遮罩效果以及透明抠图效果
Unity组件讲解 Mask 时隔多年,今天咱们继续进阶课程,这几年变化很大,但是一直还是从事Unity行业,行业虽难,依旧坚持,以后会养成习惯,定期更新,希望小伙伴们监督,有想学习…...