自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

soygrow的博客

认真工作,尽快成长成你认为的那个人。

  • 博客(46)
  • 收藏
  • 关注

原创 spring-framework源码阅读

spring-framework源码阅读源码下载地址: https://codeload.github.com/spring-projects/spring-framework/tar.gz/v5.0.10.RELEASE阅读源码最重要的是自己去写例子,这样才能加深阅读效果,不写例子,除非你是大牛,不然读了也是白度。主要是阅读《Spring源码深度解析》做的一个笔记记录,我记录了我是如何...

2019-04-24 17:41:39 524

原创 Spring - 基于Java配置的注解

如果你已经很好使用XML的配置文件的方式实现依赖注入,那么没有那么必要再去学习如果使用基于Java配置的方式实现依赖注入,因为两者是相同的作用。使用Java配置的方式可以让你在没有XML配置文件的方式下实现依赖注入,这章我们将简单介绍。@Configuration & @Bean Annotations使用@Configuration的类表明这个类可以被IoC容器使用,并指...

2018-03-01 10:11:02 3382

原创 容器的基础 XmlBeanFactory(1)

容器的基础 XmlBeanFactory(1)这是第一篇Spring源码分析,主要是为了找到继续阅读源码的兴趣,了解一个概况同时找了ignoreDependencyInterface和ignoreDependencyType深入分析了下。链接从头看点这里下载源码、笔记以及对应的例子进入我的GitHub参考链接打开BeanFactory ignoreDependencyInterf...

2019-04-24 17:46:25 217

原创 容器的导入导出以及清理

导出容器如果要导出本地某个容器,可以使用docker export命令:$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8e84...

2018-05-10 15:07:41 384

原创 Spring 中基于AOP的@AspectJ

@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格。通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的。<aop:aspectj-autoproxy/>如果需要使用该注解,需要包含一下几个包: - aspectjrt.jar - aspectjweaver.jar - asp...

2018-05-10 10:25:09 253

原创 操作Docker容器

Docker 容器简单的说,容器是独立运行的一个货一组应用,以及它们的运行态环境。对应的,虚拟机可以理解成模拟运行的一整套操作系统和泡在上面的应用。启动容器所需要的主要命令是docker run下面的命令输出一个 Hello World后结束:$ docker run ubuntu:14.04 /bin/echo 'hello world'Unable to find...

2018-05-10 10:19:53 182

原创 基于Spring AOP的XML配置

在本节中要使用AOP的命名空间,所以你需要导入下面spring aop的框架:<?xml version = "1.0" encoding = "UTF-8"?><beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSche...

2018-05-09 14:09:06 3240

原创 Docker的安装-Mac

2018-05-09 14:04:19 514

原创 Spring 框架中的AOP

Spring 框架中面向切面编程是关键组件中的一个。面向切面变成需要把程序分解成不同的部分,这个就是所谓的关注点。跨越一个程序多个点的函数称作关注点,这些横切关注点在概念上与应用程序的业务逻辑分离。日志、审计、声明式事务、安全性、高速缓存方面有很多常见的好例子。OOP中模块化的关键单元是类,而在AOP中,模块化单元是切面。依赖注入帮助你将应用程序对象彼此解耦,AOP帮助你将横切关注点与它们影响...

2018-03-27 13:54:00 261

原创 Spring - 自定义事件

下面通过一个具体的例子来说明如何创建自定义事件:CustomEvent.javapackage com.soygrow.CustomEvent;import org.springframework.context.ApplicationEvent;public class CustomEvent extends ApplicationEvent { public Cus...

2018-03-16 11:21:11 164

原创 Spring - 事件处理

从前面的内容我们知道Spring核心时ApplicationContext,管理了beans的整个生命周期。ApplicationContext在加载beans的时候会产生某些类型的事件。例如:当context开始的时候会产生ContextStartedEvent的事件,当context结束的适合会产生ContextStoppedEvent事件。ApplicationContext中的事件处理...

2018-03-10 13:08:17 321

原创 Spring - 基于配置的注解

基于配置的注解 从Spring 2.5开始可以使用注解来配置依赖注入,所以你可以在组件类、方法以及域的声明中使用注解来替代XML的配置说明。如果注解和XML都配置了依赖注入,那么注解会覆盖XML中的属性配置的依赖注入。在Spring容器中没有默认打开注解注入,所以在我们使用基于注解注入之前,我们需要在我们Spring配置文件中打开它。如果你想使用注解注入需要进行相关的配置,比如下面这样:...

2018-02-28 09:51:45 140

原创 Spring - Beans 的自动装配

Beans的自动连接(不知道怎么翻译好) 我们知道如何声明以及使用元素并且在xml配置中使用和元素注入Spring 容器可以在不适用和元素的情况下,使用bean之间的协作关系自动连接,这样有助于减少XML配置文件的内容。Autowiring Modes自动装配模式 以下的自动装配模式让Spring容器再依赖注入中使用自动装配。需要在的元素定义中指明自动装配的模式。 ...

2018-02-26 12:11:16 271

原创 Spring - 注入集合

通过之前的xml配置文件中可以看到如何使用property中 value 属性以及 ref 属性配置原始的数据。以上两种case都是为bean配置单一的值存在一种配置集合数据的场景,比如像List、Set、Map以及Properties。为了处理这种场景,Spring 提供了四种类型的集合配置元素: No Element Description 1 <...

2018-02-24 10:36:54 187

原创 Spring - 注入内部 Beans

Java 的内部类是定义在其他累的内部,相似的,inner beans也是定义在其他beans的内部的。因此元素中的或者的里面的bean叫做内部bean,如下所示:<?xml version = "1.0" encoding = "UTF-8"?><beans xmlns = "http://www.springframework.org/schema/beans"...

2018-02-22 10:14:17 385

原创 Spring - 基于 Setter 方法的依赖注入

当容器调用一个无参构造函数或者一个无参的静态工厂方法初始化你的bean后,容器通过在你的bean上调用setter的方法完成依赖注入的。ExampleSpellChecker.javapackage com.soygrow.SetterDependency;public class SpellChecker { public SpellChecker() { ...

2018-02-08 13:07:48 976

原创 Spring - 基于构造方法的依赖注入

当一个容器调用一个类的构造函数时,就完成了基于构造函数的依赖注入,构造函数中一系列的参数表示对其他类的依赖。下面从栗子中看构造函数的依赖注入。ExampleSpellChecker.javapackage com.soygrow.ConstructorDependency;public class SpellChecker { public SpellCheck...

2018-02-08 13:05:45 1189

原创 Spring - 依赖注入

每个Java应用都会有很多对象,当写一个复杂的Java应用程序时,各个类需要各自独立,以便增加这些类的重用的可能性,并且再做单元测试时,测试独立于其他类的独立性。依赖注入有助于把这些类整合起来,同时保持独立。看下面代码:public class TextEditor { private SpellChecker spellChecker; public TextEd...

2018-02-08 13:03:44 154

原创 Spring - Beans 的继承

一个Bean的定义包含很多配置信息,包括构造参数、属性值以及容器指定的信息,比如init-method和静态工厂等等。子bean的定义继承父bean定义的配置数据,子bean有必要的可以重写一些值或者增加其他值。Spring Bean 定义的继承和Java 类继承没有关系,但是继承的概念是一致的。你可以定义一个父bean作为模版,其他子bean可以从父bean中继承需要的配置。当你使用...

2018-02-08 11:02:43 194

原创 Spring - Bean 的后置处理器

BeanPostProcessor 接口定义了回调方法,让你可以自己实现实例化的逻辑以及依赖解析的逻辑。你可以通过插入一个或者多个BeanPostProcessors的实现,在Spring容器完成实例化、配置以及初始化之后,实现一些自己设定的逻辑。你可以配置多个BeanPostProcessor接口,也可以通过实现Ordered接口提供的order属性来控制这些BeanPostProcesso...

2018-02-08 10:46:39 312

原创 Spring - Bean 的生命周期

Bean的生命周期表示Bean有实例化、初始化、使用以及销毁的过程。在Bean的整个生命周期中存在一系列的行为,这一节我们只讨论两个重要的方法,一个在初始化的时候,一个是在实例被销毁的时候。为了定义一个Bean的实例化和销毁的时刻需要做的事情,可以使用initmethod和destroymethod参数。init-method属性指明的方法在bean被实例化后立刻被执行。相似的destro...

2018-02-07 14:08:44 212

原创 Spring - Bean 的作用域

当定义一个Bean的时候,你可以选择声明这个Bean的scope,不知道怎么翻译这个词。 When defining a you have the option of declaring a scope for that bean. 比如,你可以强制每次实例化一个新的对象,或者每次都返回同一个对象,这个可以说就是一个单例。ScopeSpring框架支持一下五种scopes,其中...

2018-02-06 18:55:02 161

原创 Spring - Bean 的定义

这里给出Bean的定义,还是英文的比较好理解,就不翻译了,怎么翻译怎么不对。The objects that form the backbone of your application and that are managed by the Spring IoC container are called beans.Spring Ioc容器管理Bean的实例化、装配以及其他行为。Bea...

2018-02-06 09:58:39 389

原创 IoC 容器

Spring 容器时Spring 框架的核心。容器负责创建对象,并将它们连接在一起,配置对象,并且管理它们的生命周期。Spring容器使用依赖注入Dependency Injection 来管理组成一个应用程序的组件。这些对象被称为Spring Beans,我们将在下一章讨论。通过读取配置,容器可以知道哪些对象进行实例化、配置和组装。这个配置可以通过XML、java注解以及java配置的方式。

2018-02-05 19:13:31 204

原创 HelloSpring

HelloSpring任何语言都是从Hello开始,那么我们从HelloSpring开始认识Spring代码Hello Spring 直接从代码对Spring有一个整体的了解。HelloWorld.javapackage com.soygrow.HelloSpring;public class HelloWorld { private String mess

2018-02-05 11:19:31 456

原创 Spring 教程专栏

本文参考了tutorialspoint网站中的Spring教程的文章,多数内容是翻译过来,其中也包含了自己对相关内容的理解,也包含了自己在实现相关代码过程中遇到的问题。适合人群适合刚刚入门Spring的童鞋链接参考1.tutorialspoint: https://www.tutorialspoint.com/spring其他翻译可能存在错误,欢迎指正。

2018-02-05 11:18:21 281

原创 数组中重复次数最多的数

数组中重复次数最多的数该题前提是该数组是已经排列好的数组第一种思路:从头遍历数组,两个变量保存出现最频繁的数字和出现的次数每次都找到一个数字出现的最大次数,然后和之前保存的结果相比较,若该数字出现次数较大,那么就替换之前的保存结果,反之继续第二种思路:用map映射表,这里map会将变量初始化为0。第一个关键字保存数字,第二个关键字保存该数字出现的次数。下面是两

2018-02-02 11:16:20 3183

原创 计算两个数组的交集

计算机两个数组的交集 方法思路:依次对两个数组进行遍历,直至其中一个数组结束(下面程序的方法)遍历两个数组,将两个数组放入哈希表中,并对元素个数进行统计,若为2,即为两数组的交集// MixedArray.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include  using namespace std; //查找两个有序

2018-02-02 10:25:29 1430

原创 递归与非递归实现二叉树的遍历

非递归实现二叉树的后续遍历首先后续遍历可以使用递归来实现。一般情况下,能用递归实现的问题都可以用栈来解决,只是递归更符合人的思维方式,代码相对来说较简单。但是不能说明递归的方式比栈的方式更快、更省空间,因为在递归过程中都是操作系统帮助用栈实现存储信息。下面使用递归的方式实现二叉树的后续遍历(包括先序和中序的实现,方法大致相同)://递归实现后续遍历二叉树void RecursionB

2018-02-02 10:06:27 375

原创 结构体和指针

结构体和指针#include "stdafx.h"#include //#include "node.h"struct NODE{ int a; struct NODE *b; struct NODE *c;};struct NODE nodes[5] ={ {5,nodes+3,NULL}, {15,nodes+4,nodes+3}, {22,NULL,nodes+

2018-02-02 09:53:51 212

原创 数组&指针

数组和指针 编写程序计算两个矩阵的相乘:注意:数组作为函数的参数怎么传递的二维数组怎么用指针表示// matrix_multiply.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include void matrix_multiply(int *m1,int *m2,int*r,int x,int y,int

2018-02-02 09:52:42 271

原创 在链表中查找倒数第k个元素

第一种思路:首先对链表进行遍历,计算出链表总共的元素个数然后再次遍历链表,找到第n-k个元素,即为倒数第k个元素以上方法需要对链表进行遍历两次。第二种思路:两个链表指针,前一个指针指向第k+i个元素,后一个指针指向第i个元素,两个指针间隔k-2个元素这样只需遍历一次即可找到倒数第k个元素注意:链表使用结束后,记得释放每个申请的内存。这很重要!!!//文件名

2018-02-01 16:33:19 1021 1

原创 求解二叉树的深度

求解二叉树的深度可以采用递归和非递归的方式。递归实现的代码很是简单、易懂。而非递归实现代码较复杂。递归求解二叉树深度递归的结束条件有两个:1.该节点为NULL,返会0;2.当前节点的左右字数深度均求出,返会最大值 下面是递归实现的代码://递归求解二叉树的深度int BTreeDepth(BTree *root){ if (root == NULL)

2018-02-01 16:31:05 550

原创 判断二叉树是否是平衡二叉树

平衡二叉树(Balanced Binary Tree)又被称为AVL树:且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。主要实现思路:递归求左右子树的高度若左右字数高度之差大于1,则用一个变量标记。具体实现代码如下所示://判断二叉树是否是平衡二叉树int IsBalanceTree(BTree *root,bo

2018-02-01 16:23:58 234

原创 实现单链表反转

实现单链表反转主要思路:三个节点,开始时中间节点指向头结点,第一个节点指向NULL,第三个节点指向头结点下个节点。 将中间节点反转三个节点均向后移动一格判断是否是结束条件需要注意的是:链表在使用结束后,需要释放内存(如果是new的要delete,malloc的要free) 具体代码如下所示(包含递归和非递归两种方法):#pragma once#ifndef LIST_H

2018-02-01 16:21:56 306

原创 Abstract 关键字

Abstract 关键字 Abstract 可以修饰类、方法关键点如果一个类被修饰为abstract,则此类必须被继承使用abstract类不能存在对象abstract类可以将子类的共性最大型度的抽取出来,放在父类中,以提高简洁性abstract修饰某个方法的,此时这个方法为抽象方法,不许呀实现,在子类中实现后才可以生效抽象类中可以包含普通的方法,也可以没有抽象方法

2018-02-01 16:11:54 566

转载 final 关键字

final 关键字 Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。含义final在Java中是一个保留的关键

2018-02-01 16:10:55 124

转载 NAT穿透

说明,本文转载自 http://blog.csdn.net/eastlhu/article/details/50494557,这篇文章也是转载的,具体出处不详,如果需要更改出处,请联系我。1.NET简介NAT(Network Address Translation,网络地址转换)是一种广泛应用的解决IP短缺的有效方法,NAT将内网地址转和端口号换成合

2018-02-01 15:58:20 265

原创 WebRtc连接状态变化

WebRtc连接状态变化ICE收集完成的条件连接状态的变化ComputeState:一旦ICE收集完成,至少应该存在一个可用的连接1.如果had_connection_ 为false,则状态为STATE_INIT2.检查所有的Connection,看是否有active的3.该函数应该是在ICE收集完成时才会调用4.如果检查所有Connection,没有a

2018-02-01 15:53:52 3942

转载 超强、超详细Redis数据库入门教程

超强、超详细Redis数据库入门教程【本教程目录】1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis数据结构 – strings9.redis数据结构 – lists10.redis数据结构 – 集合11.red...

2018-02-01 15:50:54 271

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除