mvnw 1.什么是mvnw?mvnw是maven warpper,它的原理是在maven-wrapper.properties文件中记录你要使用的maven版本,当用户执行mvnw clean命令时,发现当前用户的maven版本和期望的版本不一致,那么就下载期望的版本。 2.怎么配置mvnw?1.在pom.xml中添加plugin声明 12345<plugin> <groupId& 2019-09-04 构建工具 #maven #mvnw
spring AOP AOP面向切面编程面向切面编程是将程序抽象成各个切面。 AOP 要达到的效果是,保证开发者不修改源代码的前提下,去为系统中的业务组件添加某种通用功能。 用在哪里:日志、事务 AOP实现分类: 静态 AOP 实现, AOP 框架在编译阶段对程序源代码进行修改,生成了静态的 AOP 代理类(生成的 *.class 文件已经被改掉了,需要使用特定的编译器),比如 AspectJ。 动态 AOP 实现, 2019-09-03 spring #spring
spring_bean的装配方式 什么是spring bean装配Bean的装配可以理解为依赖关系注入,Bean的装配方式即Bean依赖注入的方式。 spring 容器加载bean定义方式1.xml 2.注解 bean装配方式xml标签中定义了autowite属性 No 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用。 byName 根据属性名称自动装配。如果一个bean的名称和其他的bean属性的名称是一样 2019-09-03 spring #spring
spring boot项目搭建 一、开发环境的安装JDK maven IDEA idea 安装 lombok、free mybatis plugin插件 二、IDEA创建spring boot项目File->new->project 选择spring initializr ->next spring initializr project settings ->修改你要修改的->next 选择依赖: 2019-09-03 spring boot #spring boot
spring_IOC 1.为什么使用IOC?什么是IOC?什么是DI?IOC 中文为控制反转。 IOC是一种设计、设计模式。DI是注入的一种方式。 一般依赖使用: 123Student student = new Student();Score score = new Score();student.setScore(score); 降低了程序里对象与对象之间的耦合性。 2.spring ioc 的源码分析及实现 2019-09-03 spring #spring
git 撤销本地修改与回退版本 1. 使用 git checkout 撤销本地修改即放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态。注意: 已 add/ commit 的文件不适用个方法,应该用本文提到的第二种方法。 命令如下: 1234git checkout . # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件git checkout [filename] # 撤销对指 2019-07-23 git #git
jvm之1运行时数据区域 JAVA程序启动安装JRE或JDK后,只是把程序安装到硬盘上。 Java -jar 运行时,启动了一个进程。 JRE中包含JVM虚拟机程序,java -jar 启动时相当于JVM运行,JVM运行时,会为JVM单独划出一块内存区域,而这块内存区域又可以再次划分出一块运行时数据区。 运行时数据区域 JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法栈】、线程共享区域【JAVA 堆、 2019-07-23 jvm #jvm
jvm之2内存模型 JAVA内存模型Java内存模型是共享内存的并发模型,线程之间主要通过读-写共享变量(堆内存中的实例域,静态域和数组元素)来完成隐式通信。 Java 内存模型(JMM)控制 Java 线程之间的通信,决定一个线程对共享变量的写入何时对另一个线程可见。 计算机高速缓存和缓存一致性协议如需了解JAVA内存模型,需要了解一下物理计算机是如何做的,因为常说JVM可以看成一台虚拟计算机。 计算机在高速的 C 2019-07-23 jvm #jvm
jvm之3类加载过程 类加载过程如果 JVM 想要执行这个 .class 文件,我们需要将其装进一个类加载器 中,它就像一个搬运工一样,会把所有的 .class 文件全部搬进JVM里面来。 类加载流程JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。 在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语 2019-07-23 jvm #jvm
jvm之4对象创建 对象创建流程 虚拟机遇到一条new指令时,首先检查这个对应的类能否在常量池中定位到一个类的符号引用 判断这个类是否已被加载、解析和初始化 为这个新生对象在Java堆中分配内存空间,其中Java堆分配内存空间的方式主要有以下两种 指针碰撞 分配内存空间包括开辟一块内存和移动指针两个步骤 非原子步骤可能出现并发问题,Java虚拟机采用CAS配上失败重试的方式保证更新操作的原子性 空闲列表 分 2019-07-23 jvm #jvm