- 博客(40)
- 收藏
- 关注
原创 Bean 的生命周期
Bean 实例从创建到最后销毁,需要经过很多过程,执行很多生命周期方法。 Step1:调用无参构造器,创建实例对象。 Step2:调用参数的 setter,为属性注入值。 Step3:若Bean实现了BeanNameAware接口,则会执行接口方法setBeanName(String beanId),使 Bean 类可以获取其在容器中的 id 名称。 Step4:若 Bean 实现了 Bea
2017-07-27 00:11:27 7026
原创 Bean 后处理器
Bean 后处理器是一种特殊的 Bean,容器中所有的 Bean 在初始化时,均会自动执行该类的两个方法。由于该 Bean 是由其它 Bean 自动调用执行,不是程序员手工调用,故此 Bean无须 id 属性。 需要做的是,在 Bean 后处理器类方法中,只要对 Bean 类与 Bean 类中的方法进行判断,就可实现对指定的 Bean 的指定方法进行功能扩展与增强。方法返回的 Bean 对象,即是
2017-07-27 00:05:36 5601 1
原创 容器中 Bean 的作用域
当通过 Spring 容器创建一个 Bean 实例时,不仅可以完成 Bean 的实例化,还可以通过scope 属性,为 Bean 指定特定的作用域。Spring 支持 5 种作用域。 (1)singleton:单态模式。即在整个 Spring 容器中,使用 singleton 定义的 Bean 将是单例的,只有一个实例。默认为单态的。 (2)prototype:原型模式。即每次使用 getBea
2017-07-26 23:58:44 10297
原创 动态工厂 Bean和静态工厂Bean
动态工厂 Bean 有些时候,项目中需要通过工厂类来创建 Bean 实例,而不能像前面例子中似的,直接由 Spring 容器来装配 Bean 实例。使用工厂模式创建 Bean 实例,就会使工厂类与要创建的Bean 类耦合到一起。(1 )将动态工厂 Bean 作为普通 Bean 使用 将动态工厂 Bean 作为普通 Bean 来使用是指,在配置文件中注册过动态工厂 Bean 后,测试类直接通过
2017-07-26 23:54:33 5429
原创 ApplicationContext 接口容器和BeanFactory 接口容器
ApplicationContext 接口容器 ApplicationContext 用于加载 Spring 的配置文件,在程序中充当“容器”的角色。其实现 类有两个。通过 Ctrl +T 查看: A 、配置文件在类路径下 若 Spring 配置文件存放在项目的类路径下,则使用 ClassPathXmlApplicationContext 实现类进行加载。 B 、配置文件在本地目
2017-07-26 23:41:22 25238
原创 HashSet源码解析
HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。HashSet的源
2017-07-23 17:19:38 4670
原创 HashMap源码解析——get方法
public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value; }getNode()方法 final Node<K,V> getNode(int hash, Object key) { Node<K,V>
2017-07-23 16:51:44 10264
原创 HashMap源码解析——put方法
public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }先看hash(key)函数。它是通过key的hashCode值计算hash码。//计算hash值的方法 通过键的hashCode来计算static final int hash(Object key) {
2017-07-23 16:39:10 5197
原创 HashMap源码解析——构造方法
上篇博文列取了HashMap的关键属性,本篇主要看构造方法HashMap的几个构造方法: 补充下//加载因子 static final float DEFAULT_LOAD_FACTOR = 0.75f; //容量 static final int MAXIMUM_CAPACITY = 1 << 30; static final int MIN_TREEIFY_CAPACITY = 6
2017-07-22 22:53:42 2497
原创 HashMap源码解析——关键属性
HashMap类中的一些关键属性:ttransient Node<K,V>[] table;//存储元素的实体数组transient int size;//存放元素的个数int threshold; //临界值 当实际大小超过临界值时,会进行扩容threshold = 加载因子*容量final float loadFactor; //加载因子transient int modCount;
2017-07-22 22:24:34 3135
原创 HashMap源码解析——概述
HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchro
2017-07-21 09:01:16 10219
原创 使用Eclipse上传/下载Git项目
使用Eclipse上传/下载Git项目 前提:Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置配置Git信息配置用户信息Eclipse,选择菜单:Preferences > Team > Git > Configuration > User Settings > Add Entry..Key: user.name, Va
2017-07-20 08:57:51 6660
原创 Maven Dependencies 不见了
Maven Dependencies 不见了解决办法:1 选中项目 –> 右键 –> Maven –> Disable Maven Nature 此时,右键菜单中将隐藏【Maven】菜单选项2 选中项目 –> 右键 –> Configure –> Convert to Maven project. 3 选中项目–>右键–>Properties–>Deployment Assembly –
2017-07-20 08:49:16 11550
原创 MySQL存储过程和函数的区别
1、总述 存储函数和存储过程统称为存储例程(stored routine)。两者的定义语法很相似,但却是不同的内容。 存储函数限制比较多,比如不能用临时表,只能用表变量。还有一些函数都不可用等等。而存储过程的限制相对就比较少。 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 2、返回值上的不同 存储函数将向调用者返回一个且仅返回一个结果值。 存储过程将返回一个或
2017-07-19 12:32:02 6413
原创 MySQL中的while循环和repeat循环的区别
MySQL中的while循环和repeat循环的区别1、while是满足条件才执行循环,repeat是满足条件退出循环;2、while在首次循环执行之前就判断条件,最少执行0次,repeat是在首次执行循环之后才判断条件,循环至少执行一次。
2017-07-19 12:30:13 12571
转载 MySQL时间戳和日期相互转化
MySQL时间戳和日期相互转化1、UNIX_TIMESTAMP():将日期时间转换成时间戳2、FROM_UNIXTIME():将时间戳转换成日期时间 实例:SELECT NOW(),UNIX_TIMESTAMP(NOW()),FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())); 转载于http://blog.csdn.net/you23hai45/article/detail
2017-07-19 12:29:20 11947
原创 MySQL出现“错误1067:进程意外终止”
1、错误描述 2、错误原因 今天,我在摸索如何利用命令查看MySQL日志,查了很多资料,大多数是通过修改my.ini文件配置。我修改了配置后,准备重启mysql服务器,先执行了net stop mysql,发现服务还是没停;于是,我直接到Windows7服务下去停止MySQL服务,停了服务后再次重启,就弹出上述警示窗口3、解决办法 为了解决这个问题,我查阅了大量的资料,总结几点:(1)删
2017-07-19 12:25:54 10401
转载 利用MySQL查询所有数据库表以及表中的记录数
1、问题背景 在一个数据库中,查看所有数据库表;为了测试需要清空数据库所有表,但是不能清空用户表、角色表、权限表和角色权限表。2、命令实现USE information_schema; SELECT table_name, table_rows FROM TABLES WHERE table_schema = 'book' ORDER
2017-07-19 08:57:29 8636
转载 如何利用MySQL语句将自增重置为1
1、问题背景 一张数据库表设置主键id为自增长,表里添加数据后删除了,id还是从之前的值开始增长,而不是从1开始自增长。该如何让id重新从1开始自增2、实现命令(1)利用alterUSE book; DELETE FROM t_books_author; ALTER TABLE t_books_author auto_increment = 1; (2)truncate U
2017-07-19 08:55:22 10435
原创 Could not retrieve transation read-only status server
1、错误描述Caused by: java.sql.SQLException: Could not retrieve transation read-only status server at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) at com.mysql.jdbc.SQLError.cre
2017-07-19 08:49:39 10805
转载 java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation
1、错误描述严重: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableI
2017-07-19 08:47:58 16802
转载 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value
1、错误描述严重: Servlet.service() for servlet [springmvc] in context with path [/cip] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException:
2017-07-19 08:45:46 12316
转载 ORA-01031: 权限不足
1、错误描述ORA-01031: 权限不足 2、错误原因SQL> create user yhd identified by scott account unlock; create user yhd identified by scott account unlock 由于scott是普通用户,没有权限解锁 转载于http://blog.csdn.net/you23hai45/arti
2017-07-18 09:04:24 9692
转载 ORA-00957: 重复的列名
1、错误描述ORA-00957: 重复的列名 2、错误原因SQL> create table info( 2 stu_id varchar2(7) not null, 3 stu_name varchar2(20) not null, 4 stu_age varchar(2) not null, 5 stu_age number(2)
2017-07-18 09:02:17 20816
转载 ORA-00922: 选项缺失或无效
1、错误描述SQL> create table info_stu from select t.stu_id,t.stu_name,t.stu_age from info t; create table info_stu from select t.stu_id,t.stu_name,t.stu_age from info t ORA-00922: 选项缺失或无效2、错误原因 由于用数
2017-07-18 08:59:24 14011
转载 Oracle中的BLOB和CLOB字段类型的区别
Oracle中的BLOB和CLOB字段类型的区别1、BLOB是按二进制来存储的,而CLOB是可以直接存储文字的;2、BLOB字段可以存储图片、文件和音乐等,而CLOB可以存储文章或较长文字的内容。 转载于http://blog.csdn.net/you23hai45/article/details/50734371
2017-07-18 08:56:57 11703
转载 React生成有序列表
1、问题背景 利用React生成有序列表,并按照有序排列2、实现源码<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>React之有序列表</title> <script type="text/javascript" src="../js/react.j
2017-07-17 23:03:04 10898
转载 React生成无序列表
1、问题背景 利用React生成无序列表,列表展示的是一年四季2、实现源码[html] view plain copy print?<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>React之无序列表</title> <script type="te
2017-07-17 23:00:46 10657
转载 Flex配置文件-messaging-config.xml
<?xml version="1.0" encoding="UTF-8"?> <service id="message-service" class="flex.messaging.services.MessageService"> <adapters> <adapter-definition id="actionscript" class="flex
2017-07-17 22:54:13 10513
转载 MongoDB基本介绍及一些用法
摘要:面向文档的数据库MongoDB可以满足海量存储需求,越来越受到业界的重视。本文简单的介绍MongoDB的一些用法。 满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB MongoDB Nice, I like it very much. 面向文档的非关系数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。Mon
2017-07-17 20:19:14 12762
转载 白话MongoDB(三)
通过源代码编译安装好MongoDB之后,接下来需要配置运行。在MongoDB的安装目录,有几个子目录,bin下面是可执行文件,包括: mongod:数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行 mongo:客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法 mongodump/mongorestore:将数据导入为bs
2017-07-17 08:55:34 9145
转载 白话MongoDB(二)
前面扯了一堆,要了解一个东西,最好的办法,还是让他跑起来,然后结合文档和测试,来验证其实现,并且了解其不足和优点。 MongoDB提供了部分系统的编译版本,但从研究学习以及线上不同依赖包的稳定性的目标,个人还是比较推荐从源代码编译安装的方式。MongoDB的源代码依赖了一些基础组件,如js引擎Spider Monkey,正则表达式引擎PCRE,安装构建工具Scons,以及C++的boost库等
2017-07-17 08:54:30 9920
转载 白话MongoDB(一)
按照官方的说法,MongoDB是一种可扩展的高性能的开源的面向文档(document-oriented )的数据库,采用C++开发。注意mongo不是mango(芒果),这个词是从humongous中截取出来的,其野心不言而明,直指海量数据存储。和其他很多NoSQL不太一样,MongoDB背后有一个专门的商业公司在提供支持和推广,有点类似MySQL AB的模式。这一系列文章,是为入门者写的,已经对N
2017-07-17 08:52:51 11505
转载 解析XML的方法
解析XML的方法1、DOM生成和解析XML2、SAX生成和解析XML3、DOM4J生成和解析XML4、JDOM生成和解析XML原文链接http://blog.csdn.net/you23hai45/article/details/38025795
2017-07-17 08:44:33 8418
转载 mongoDB——安装及启动
WINDOWS环境下: 一、安装 步骤一: 下载MongoDB url下载地址: http://downloads.MongoDB.org/win32/步骤二: 设置mongodb程序存放目录 例如,将其解压到 c:\,再重命名为mongo,路径为c:\mongo。步骤三: 设置数据文件设置存放目录 例如,在c:盘建一个db文件夹,路径c:\db 步骤四: 启动MongoD
2017-07-17 08:39:25 9874
原创 排序算法——简单选择排序
选择排序基本思想 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 对数组{ 8, 5, 2, 6, 9, 3, 1, 4, 0, 7 }排序。 选择排序是不稳定的排序算法,在一趟选择,如果一个元素比当前元素小,而该小的元素又出现
2017-07-13 00:37:06 10051
原创 对象的内存布局及访问原理
天天面向对象,四处找对象,了解对象先从对象的内存布局及访问原理开始。对象的内存布局 对象的内存布局如下图所示 HotSpot虚拟机的对象头包括两部分信息:运行时数据和类型指针。 如果对象是一个Java数组,那在对象头中还必须有一块用于记录数组长度的数据,虚拟机可以通过普通Java对象的元数据信息确定Java对象的大小,但是从数组的元数据中无法确定数组的大小。 运行时数据(Mark
2017-07-09 23:19:57 10455
原创 jvm内存分配过程
jvm内存分配过程 1、JVM 会试图为相关Java对象在Eden Space中初始化一块内存区域。 2、当Eden空间足够时,内存申请结束;否则到下一步。 3、JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收)。释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区。 4、Survivor区被用来作为Eden及Old的中
2017-07-09 20:32:40 11766
原创 深入理解JVM内存模型
开门见山,jvm内存模型主要包括Java 堆、Java 虚拟机栈、本地方法栈、方法区、程序计数器;下面为各位看官详细解说。JVM的逻辑内存模型图: 先用表格简单比较下,下面再逐一详述。名称特征作用配置参数异常java堆线程共享,生命周期与虚拟机相同,可以不使用连续的内存地址保存对象实例,所有对象实例(包括数组)都要在堆上分配-Xms-Xsx-XmnOutOfMemoryErro
2017-07-07 16:47:28 10531
原创 支持post,get请求(http,https)的HttpClientUtils
支持post,get请求(http,https)的HttpClientUtils 调用不同的接口,受不同协议,以及不同请求方式影响,总结的一个简洁的HttpClientUtils工具类。 转载请注明出处http://blog.csdn.net/jdjh1024 有更好的实现方式以及补充也可联系博主,学无止境,相互切磋。package com.lilin.utils;import java.io
2017-07-06 22:06:17 11801
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人