- 博客(191)
- 收藏
- 关注
原创 Java基础——深入了解泛型机制
首先我们写一个测试类,} }然后我们可以用javap -c Test.class编译或者java的plugins:jclasslib-bytecode-viewer,得出以下L1ICONST_1ICONST_2) V L2RETURNL3从编译结果来看,它内部字节码编译的时候增加了以下几个字节码ICONST_1ICONST_2这就是所谓的桥方法。
2023-06-01 14:19:08
281
2
原创 Java基础——面向对象
在同一个类中,只要方法的方法名相同,那么这几个方法就构成重载。重载方法的参数类型和参数个数可以不同,返回值的类型也可以不同,无法根据返回值类型来判断一个方法是不是重载方法。重载方法的权限可以是是任意权限,这是没有要求的。重载的作用是:减少代码长度,它是更高效利用方法的一种方式,它的特征就是在引用方法的时候添加不同的参数,让程序走向不同的方向,它作用于单个类中。
2023-04-27 15:06:58
103
原创 Spring——最全Spring目录
领域:对支付(FMS,FUND,PAY),订单(OMS),出行行业等有相关的开发领域。,有兴趣的可以私聊博主一起编写,或者给颗star。公众号:小白的Java进阶之路。
2023-01-05 14:51:02
1358
7
原创 【Spring【AOP】】——21、@EnableAspectJAutoProxy注解详解?
我们会进入refresh()方法里面的,并且会执行到下面这一行重要代码,//注册Bean处理器,然后拦截bean创建。然后我们进入registerBeanPostProcessors方法中,看一下其核心实现,她就是调用了 PostProcessorRegistrationDelegate的registerBeanPostProcessors(beanFactory, this)静态方法。
2023-01-05 14:40:08
534
5
原创 【Spring【IOC】】——19、使用@Profile注解实现开发、测试和生产环境的配置和切换?
公众号:小白的Java进阶之路,有兴趣的可以私聊博主一起编写,或者给颗star领域:对支付(FMS,FUND,PAY),订单(OMS),出行行业等有相关的开发领域。
2022-12-28 01:26:11
468
原创 【Spring【AOP】】——20、搭建一个AOP测试环境?
AOP的全称是Aspect Oriented Programming,即面向切面编程。是实现功能统一维护的一种技术,它将业务逻辑的各个部分进行隔离,使开发人员在编写业务逻辑时可以专心于核心业务,从而提高了开发效率。
2022-12-27 03:13:16
600
原创 【Spring【IOC】】——18、自定义组件中如何注入Spring底层的组件?
其实说白了就是哪个接口需要获取配置,那么那个接口就需要进行实现该接口 EnvironmentAware并实现里面的 setEnvironment方法/**其实说白了就是哪个接口需要获取配置,那么那个接口就需要进行实现该接口并实现里面的set方法}哪个类需要获取配置信息那么该类就需要进行该接口 environmentAware 的实现实现 environmentAware 这个接口所提供的方法 setEnvironment()通过 environment 进行配置信息获取。
2022-12-27 01:26:32
697
原创 【Spring【IOC】】——17、@Resource注解和@Inject注解?
Resource注解和@Autowired注解的功能是一样的,都能实现自动装配,只不过@Resource注解默认是按照组件名称(即属性的名称)进行装配的。虽然@Resource注解具备自动装配这一功能,但是它是不支持@Primary注解优先注入的功能的,而且也不能像@Autowired注解一样能添加required=false属性。
2022-12-14 21:48:29
934
原创 【Spring【IOC】】——16、使用@Autowired、@Qualifier、@Primary这三大注解自动装配组件?
如果方法只有一个IOC容器中的对象作为参数,当@Autowired注解标注在这个方法的参数上时,我们可以将@Autowired注解省略掉。也就说@Bean注解标注的方法在创建对象的时候,方法参数的值是从IOC容器中获取的,此外,标注在这个方法的参数上的@Autowired注解可以省略。
2022-12-14 21:42:06
400
原创 【Spring【IOC】】——15、使用@PropertySource加载配置文件
通过@PropertySource注解可以将properties配置文件中的key/value存储到Spring的Environment中,Environment接口提供了方法去读取配置文件中的值,参数是properties配置文件中定义的key值。
2022-12-14 21:35:39
898
原创 【Spring【IOC】】——14、如何使用@Value注解为bean的属性赋值呢?
{···}:用于执行SpEl表达式,并将内容赋值给属性${···}:主要用于加载外部属性文件中的值KaTeX parse error: Expected 'EOF', got '#' at position 7: {···}和#̲{···}可以混合使用,但是必…{}在里面。
2022-12-14 21:24:37
529
原创 【Spring【IOC】】——13、BeanPostProcessor在Spring底层是如何使用的?
1、ApplicationContextAwareProcessor2、BeanValidationPostProcessor3、InitDestroyAnnotationBeanPostProcessor4、AutowiredAnnotationBeanPostProcessor
2022-12-14 21:19:36
387
原创 【Spring【IOC】】——12、BeanPostProcessor的执行流程?(源码分析)
在最后的2.11中InitializeBean方法中,调用了invokeInitMethods(beanName, wrappedBean, mbd);方法,他的主要作用是执行初始化相关方法,我们可以看一下其源码可以发现他是先执行所有的的子类之后然后再去调用在XML配置文件的标签中使用init-method属性指定的初始化方法;在@Bean注解中使用initMehod属性指定的方法;
2022-12-14 21:11:42
688
原创 【Spring【IOC】】——11、了解BeanPostProcessor后置处理器
BeanPostProcessor在Spring中是一个很强大的后置处理器接口,常用于注解处理,比如我们常用的@Value本质就是用这个后置处理器处理,那么BeanPostProcessor长的是什么样子的呢?代码如下。
2022-11-28 00:14:24
595
原创 【Spring【IOC】】——10、@PostConstruct注解和@PreDestroy注解
公众号:小白的Java进阶之路,有兴趣的可以私聊博主一起编写,或者给颗star领域:对支付(FMS,FUND,PAY),订单(OMS),出行行业等有相关的开发领域。
2022-11-28 00:11:51
609
1
原创 【Spring【IOC】】——9、如何指定初始化和销毁的方法?
我们这次主要是针对SpringBean的最后两步讲解,就是Bean的初始化,和销毁。具体怎么操作,我们只需要对通过@Bean注解指定初始化和销毁方法。使用InitializingBean和DisposableBean我们可以发现,Spring的Bean在单例的时候,他会按顺序执行初始化构造初始化完成Bean销毁(容器关闭的时候)
2022-11-22 23:32:55
1243
5
原创 【Spring【IOC】】——8、如何使用FactoryBean向Spring容器中注册bean?
一般情况下,Spring是通过反射机制利用bean的class属性指定实现类来实例化bean的。在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,那么则需要在标签中提供大量的配置信息,配置方式的灵活性是受限的,这时采用编码的方式可以得到一个更加简单的方案。Spring为此提供了一个org.springframework.bean.factory.FactoryBean的工厂类接口,用户可以通过实现该接口定制实例化bean的逻辑。
2022-11-21 02:58:36
951
9
原创 【Spring【IOC】】——7、@Import注解给容器中快速导入一个组件
Spring3.0之前我们可以通过XML方式去指定扫描特定的包将类注入到Spring容器中,Spring3.0之后通过JavaConfig的方式将Bean的元信息以代码的方式进行描述,我们可以通过@Configuration与@Bean配合使用将原来配置在XML方文件里面的Bean通过Java代码描述。
2022-11-17 01:00:24
1894
15
原创 【Spring【IOC】】——6、按照条件向Spring容器中注册bean
Conditional注解可以按照一定的条件进行判断,满足条件向容器中注册bean,不满足条件就不向容器中注册bean。
2022-11-17 00:54:44
502
2
原创 【Spring【IOC】】——5、@Lazy懒加载
懒加载就是Spring容器启动的时候,先不创建对象,在第一次使用(获取)bean的时候再来创建对象,并进行一些初始化懒加载,也称延时加载,仅针对单实例bean生效。单实例bean是在Spring容器启动的时候加载的,添加@Lazy注解后就会延迟加载,在Spring容器启动的时候并不会加载,而是在第一次使用此bean的时候才会加载,但当你多次获取bean的时候并不会重复加载,只是在第一次获取的时候才会加载,这不是延迟加载的特性,而是单实例bean的特性。
2022-11-17 00:52:44
784
原创 【Spring【IOC】】——4、使用@Scope注解设置组件的作用域
Scope注解能够设置组件的作用域,我们先来看看@Scope注解类的源码,如下所示。
2022-11-17 00:50:31
462
原创 【Spring【IOC】】——3、自定义TypeFilter指定@ComponentScan注解的过滤规则
如果实现自定义规则进行过滤时,自定义规则的类必须是org.springframework.core.type.filter.TypeFilter接口的实现类按照自定义规则进行过滤,首先我们得创建org.springframework.core.type.filter.TypeFilter接口的一个实现类,例如MyTypeFilter/*** @description: 自定义规则/*** 参数:* metadataReader:读取到的当前正在扫描的类的信息。
2022-11-17 00:45:06
670
原创 【Spring【IOC】】——2、使用@ComponentScan自动扫描组件并指定扫描规则
我们可以使用@ComponentScan注解来指定Spring扫描哪些包,可以使用excludeFilters()方法来指定扫描时排除哪些组件,也可以使用includeFilters()方法来指定扫描时只包含哪些组件。当使用includeFilters()方法指定只包含哪些组件时,需要禁用掉默认的过滤规则。
2022-11-17 00:43:22
631
4
原创 【Spring【IOC】】——1、使用@Configuration和@Bean给容器中注册组件
我们在使用注解方式向Spring的IOC容器中注入JavaBean时,如果没有在**@Bean注解中明确指定bean的名称**,那么就会使用当前方法的名称来作为bean的名称;如果在**@Bean注解中明确指定了bean的名称**,那么就会使用**@Bean注解中指定的名称来作为bean的名称**。
2022-11-17 00:34:36
997
11
原创 SpringCloud Alibaba——精读Nacos+CMDB+核心源码阅读(7w字长篇)
1、服务发现与健康监测2、动态配置服务3、动态DNS服务4、服务及其元数据管理动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Na
2022-11-13 03:57:40
2402
26
原创 从0到一开发微信小程序(7)—小程序组件库(提高开发效率)
Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。目前 Vant 官方提供了Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护React 版本和支付宝小程序版本。
2022-09-22 10:51:16
2753
原创 从0到一开发微信小程序(5)—小程序WXML
因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的基于CSS控制显示与隐藏。一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。
2022-09-22 10:47:19
1120
2
原创 从0到一开发微信小程序(4)—小程序组件
小程序中常用的基础视图,有三种,分别是view,text,imageview:视图容器text:文本image:图片。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。view的显示效果跟div是一样的,我们可以理解为它就是一个html中的div,它属于块级元素注意:如果需要滚动视图,请使用scroll-view测试代码:新建一个views页面,在views.wxml中添加:展示效果:文本,承载页面文本信息,类似span的功能text 是行内元素温馨提示
2022-09-22 10:38:36
1902
1
原创 从0到一开发微信小程序(3)—小程序框架配置
意义:开发目录:配置如下:1.1.1.2、生成页面方式第一种方式第二种方式:保存之后总结:我们可以发现第二种方式更好,因为少了很多步骤,可以偷偷懒!。支持 static / manual / auto |修改app.json文件中的window属性配置展示效果:如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。其中 list 接受一个数组,只能配置最少 2 个、最多 5
2022-09-15 14:38:15
27925
5
原创 从0到一开发微信小程序(1)——申请账号并安装开发环境
微信小程序其实就是一种不需要下载安装即可使用的应用,它基于微信运行,类似于APP,不过无需下载安装,想用就用,用完即走,不占内存。
2022-09-14 20:03:48
3195
3
原创 计算机组成原理——计算机如何执行指令(二)
文章目录二进制什么是二进制数移位运算和乘除的关系补数算数右移和逻辑右移的区别字符编码和字符集字符编码字符集静态链接过程动态链接和装载可执行文件装载动态链接二进制我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?下面就来看一下什么是二进制数那么什么是二进制数呢?为了说明这个问题,我们先把 00100111 这个数转换为十进制数看一下,二进制数转换为十进制数,直接将各位置上的值 * 位权即
2022-03-07 00:48:35
1776
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人