- 浏览: 60610 次
- 性别:
- 来自: 无锡
最新评论
文章列表
Spring源码解析-bean的加载
- 博客分类:
- Spring
我们先看一道面试经常会问到的问题:spring的bean在什么时候实例化? ——第一:如果你使用BeanFactory,如XmlBeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该bean的时候实例化 。第二:如果你使用ApplicationContext作为Spring Bean的工厂类,则又分为以下几种情况:
1.如果bean的scope是singleton的,并且lazy-init为false(默认是false,所以可以不用设置),则ApplicationContext启动的时候就实例化该bean,并且将实例化的bean放在一个 ...
实例化的工作会在容器启动后过AbstractApplicationContext中reflash方法自动进行。我们常用的ApplicationContext实现类ClassPathXmlApplicationContext继承了AbstractApplicationContext类
AbstractApplicationContext里的reflash方法是spring初始ioc容器一个非常重要的方法,不管你是ApplicationContext哪个实现类,最终都会进入这个方法。
这个方法的作用是创建加载Spring容器配置(包括.xml配置,property文件和数据库 ...
很多人一提ioc,便张口就来:控制反转。究竟哪些方面被反转了呢?答案是依赖对象的获得被反转了。很多时候,我们通过多个对象之间的协作来完成一个功能,如果获取所依赖对象靠自身来实现,这将导致代码的耦合度高和 ...
本文讲解多文件上传方法,不比较上传有几种方法和效率,而是定向分析apache的httpmime包的MultipartEntityBuilder类,源码包:httpmime-4.5.2.jar
目录
1.多文件上传常用用法
2.注意点
=======正文分割线===========
一、常用用法
1.上传文件
三个传值方法,addPart、addBinaryBody、addTextBody如下图:
1 MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
2 entityBuild ...
使用docker-machine create -d virtualbox创建主机,提示要更新但又由于网络的某些原因无法下载导致的错误如下:
Running pre-create checks...
(manager) Default Boot2Docker ISO is out-of-date, downloading the latest release...
(manager) Latest release for github.com/boot2docker/boot2docker is v1.11.2
(manager) Downloading C:\Users\Ad ...
查看MySQL表占用空间
- 博客分类:
- Oracle DB
如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH:数据大小 INDEX_LENGTH:索引大小
1、进去指定schema 数据库:
> use information_schema;
2、查询所有数据的大小 :
> select concat(round(su ...
machine VM unreachable if the virtualbox host-only network conflicts with one of the machine host's network interfaces #3060
https://github.com/docker/machine/issues/3060
里面提到了原因:因为docker想使用的IP段跟你的主机所使用的IP段重复了,解决方法就是删除docker镜像,创建的时候使用另一个IP段。
用Notpade++打开C:\Program Files\Docker Toolbox\ ...
1、打开第三方依赖包,源文件的快捷键:ctrl + mouseClick
2、由于我们下载的第三方jar 包,如Spring等相关的依赖包时,并没有附加下载相应的源文件,所以经常出现如图的这种问题。
解决方法如下:
1、jar包下都为编译生成的 .class 文件,所以安装相应的反编译插件,反编译为 .java 文件后,即可查看源码。
2、先下载jadClipse的jar包(反编译插件)
链接:sourceforge.net/projects/jadclipse/
3、然后,将net.sf. ...
Java 8 Lambda 表达式
- 博客分类:
- Java Base
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
语法
lambda 表达式的语法格式如下:
(parameters) -> expression 或 (parameters) ->{statements; }
Java 8 新特性
- 博客分类:
- Java Base
Java 8 新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
新特性
Java8 新增了非常多的特性,我们主要讨论以下几个:
关闭eslint验证
- 博客分类:
- Computer
1. 把 build/webpack.base.conf.js 配置文件中的eslint rules注释掉即可。
module: { rules: [ // { // test: /\.(js|vue)$/, // loader: 'eslint-loader', // enforce: 'pre', // include: [resolve('src'), resolve('test')], // options: { // formatter: require('eslint-friendly-formatter') // } // }, ... ] ... }
如图:
2 ...
面向对象可以非常方便的解决一些扩展性的问题,但是在这个过程中系统务必会产生一些类或者对象,如果系统中存在对象的个数过多时,将会导致系统的性能下降。对于这样的问题解决最简单直接的办法就是减少系统中对象 ...
1
Ctrl + Space
完成类、方法、变量名称的自动输入
2
Ctrl + N(Ctrl + Shift + N)
跳转到指定的Java文件(其它文件)
3
Ctrl + B
跳转到定义处
4
Ctrl + Alt + T
用if、while、try catch来围绕选中的代码行
5
Ctrl + Alt + B
跳转到方法实现处
6
Ctrl + W
按一个word来进行选择操作,在IDEA里的这个快捷键功能是先选择光标所在字符处的单词,然后是选择源代码的扩展区域
7
Shift + F1 ...
模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。
模板方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本方法汇总起来的方法叫做模板方法(template method),这个设计模式的名字就是从此而来。
模板方法所代表的行为称为顶级行为,其逻辑称为顶 ...
package com.otg.jason.filter.old;
/**
* Created by jason.guan on 2017/7/16.
*/
public class FilterProcessor {
String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String process(){
...