前言 我们都知道spring boot项目是通过main方法来启动运行的,但是main方法执行之后,spring boot都替我们完成了哪些操作,最终让我们的服务成功启动呢?今天我们就来从源码层面探讨下这个问题。 spring boot启动过程 在开始之前,我们先看这样一段代码: @SpringBo ...
转载
2021-09-06 08:31:00
427阅读
2评论
今天在看《支撑处理器的技术》,其中,讲到了CPU流水线。在指令之间,如果下一条指令,需要用到上一条指令的结果,会影响到流水线的执行。书上给出了几种解决方案,一个是在指令中间插入一下无关的指令。这个可以用指令乱序实现,这里可以看出,指令乱序是确实可以提高指令运行效率。还有就是可以通过软件进行优化,代码
原创
2021-08-07 11:45:25
335阅读
继续讲CAS算法,上篇文章我们知道,CAS算法底层实现,是通过CPU的原子指令来实现。那么这里又有一个情景:话说,有一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且two进行了一些操作变成了B,然后two又将V位置的数据变成A,这时候线程one进行CAS操作发现内存中仍然是A,然后one操作成功。尽管线程one的CAS操作成功,但是不代表这个过程就是没有问题的。为什
测试代码均写在这个类里面的,因为是测试嘛,所以表名那些就将就看了。最后写完了再贴上全部代码 类的路径:Rookey.Frame.Operate.Base -> Test -> Class1.cs 1、获取用户信息 2、获取分页数据 public static GridDataParmas GetGr
转载
2019-08-22 10:22:00
32阅读
点赞
2评论
网络上有很多优秀的开源代码,学习这些代码是提高自己编程水平的最佳途径。我们在实际项目开发的过程中也会使用很多优秀的开源代码来加快开发速度,避免重复造轮子。优秀开源代码至少可以给我们提供三个层次的学习资料。第一层次:使用开源代码 这一步相对简单,也是大部分人在项目开发过程中最常用的方式。优秀的开源代码一般文档齐全,示例代码丰富。通过简单地学习这些资料,可以较容易地掌握开源代码的用法。第二层次:阅读
前言对于一个应用而言,事务的使用基本是不可避免的。虽然Spring给我们提供了开箱即用的事务功能——@Transactional。
但是,自带的事务功能却也存在控制粒度不够的缺点。更糟糕的是,@Transactional在某些情况下就失效了。可能一些读者baidu/google一下解决办法后,失效的问题确实解决了。但是由于不了解底层的原理,这样的问题可能在今后的工作中往复出现。
本文就为大家揭开@
1-安卓底层--基础先看看代码: java 调用 C/C++ 代码1.TestJni.javapublic class TestJni{
static{
System.loadLibrary("xxx"); //加载 libxxx.so 库文件
}
public native void hello(); //本地方法,在so文件里实现
public static void main (String
1.0、v-if 和 v-show 区分使用场景v-if 是 真正 的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。 v-show 就简单得多, 不管初始条件是什么, ...
转载
2021-09-14 11:21:00
157阅读
2评论
spring第二天 一、基于注解的IOC配置 1.1写在最前 学习基于注解的IOC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能是一样的,都是降低程序间的耦合。只是配置的形式不一样。 关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯。所以这两种配置方式我们都需要掌握。 ...
原创
2022-09-14 15:39:31
47阅读
spring第一天 一、Spring概述 1.1spring概述 1.1.1spring介绍 Spring是分层的Java S
原创
2022-09-14 15:40:18
155阅读
spring第三天 一、AOP的相关概念 1.1AOP概述 1.1.1什么是AOP AOP:全称是Aspext Oriented Programming即:面向切面编程。
原创
2022-09-14 15:39:58
29阅读
spring第四天 一、Spirng中的JdbcTemplate 1.1JbdcTemplate概述 他是spring框架中提供的一个对象,是对原始JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类,如下: ORM持久化技术 模板类 JDB...
原创
2022-09-14 15:40:10
56阅读
5、Spring的AOP5.1、AOP的相关概念在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发的一个热点,也是Spring框架的一个重要内容,是函数式编程的一种衍生类型。简单的说,就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理技术
# Spring容器动态加载Java代码
## 引言
Spring框架因其灵活性和强大功能而备受开发者青睐。随着项目的不断复杂、多变,动态加载代码的需求愈发明显。动态加载的代码可以根据不同的运行环境或业务逻辑灵活调整,而Spring容器的强大管理能力使得这一任务变得更加简单。
在本文中,我们将探讨如何在Spring容器中动态加载Java代码,并提供一个具体的代码示例来阐明这一过程。
##
BeanFactory提供的是最基本的IOC容器的功能,关于这些功能定义,我们可以在接口BeanFactory中看到。BeanFactory接口定义了IOC容器最基本的形式,并且提供了IOC容器所应该遵守的最基本的服务契约,同时,这也是我们使用IOC容器所应遵守的最底层和最基本的编程规范,这些接口定义勾画出了IOC的基本轮廓。很显然,在Spring的代码实现中,BeanFactory只是一个接口类
众所周知,人们为了提高系统及硬件资源的利用率而引入了虚拟化技术。虚拟化是一种资源管理技术,它可以各种实体资源抽像后再分隔,从而打破实体结构的限制,最大程度的提高资源的利用率。从实现形式来分,虚拟化技术分为硬件虚拟化技术和软件虚拟化技术。而Docker属于软件虚拟化技术中的操作系统层虚拟化技术,它是基于LXC实现的一个应用容器引擎,Docker让开发者可以打包他们的应用及依赖环境到一个可移植的容器中
转载
2023-09-20 13:09:31
63阅读
前言本次源码阅读的Spring版本为5.10.RELEASE。启动Spring容器,本质上是创建并初始化一个具体的容器类的过程,以常见的容器类AnnotationConfigApplicationContext为例,启动一个Spring容器可以用以下代码表示AnnotationConfigApplicationContext act = new AnnotationConfigApplicatio
设计模式它是一种代码编程长期发展的经验和解决某种问题的通用的思想,并且中所周知的一套代码方法和理念。也是我们编写程序的基石。我日常写代码就好比建造房子一样,首先我们需要搭建好架子。然后根据这个架子慢慢的将整个大厦建起来。同样的,我们在编写程序的时候,也需要遵循一定的原则和框架,这样我们写出来的程序才更见健壮,开发起来也会更加省时间,提高代码的可读性,拓展性,重用性,灵活性等,减少开发成本。设计
在Java编程中,FGC(Full Garbage Collection)是一种垃圾回收机制,它会暂停整个应用程序的运行,导致性能下降和用户体验不佳。因此,我们需要在代码层面采取一些措施来避免FGC的发生,从而提高程序的性能和稳定性。
### 什么是FGC?
在Java应用程序中,当内存中的对象无法再被访问到时,垃圾回收器会自动将这些对象从内存中清理掉。而FGC是指一种全局的垃圾回收操作,它需
控制层面与数据层面的区别小结1、数据层面概述从数据层面来说,路由器就是
原创
2022-06-24 20:51:00
279阅读