- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 AOP源码分析三:pointcut的配置说明
aop配置中有如下一行:<aop:pointcut expression="execution(* com.aop.service..*(..))"其中expression="execution(* com.aop.service..*(..))"的配置规则如下:execution(modifiers-pattern? ret-type-pattern declaring-...
2019-09-02 18:08:00 721
原创 AOP源码分析二:创建AOP代理
aop代理的创建时在初始化bean之后,先来看下bean初始化方法:initializeBeanAbstractAutowireCapableBeanFactory的initializeBean方法进行初始化://初始容器创建的Bean实例对象,为其添加BeanPostProcessor后置处理器 protected Object initializeBean(final String...
2019-09-02 18:07:56 250
原创 AOP源码分析一:xml文件解析
AOP的xml文件配置如下:<aop:aspectj-autoproxy proxy-target-class="true"/><bean id="xmlAspect" class="com.aop.aspect.XmlAspect"></bean> <!-- AOP 配置 --> <aop:config> ...
2019-09-02 18:07:50 299
原创 Spring的IOC容器初始化源码分析四:载入注解Bean
refresh方法中,调用注解解析bean的loadBeanDefinitions方法如下:public class AnnotationConfigWebApplicationContext extends AbstractRefreshableWebApplicationContext implements AnnotationConfigRegistry //载入注解Bean...
2019-09-02 14:33:02 432
原创 Spring的IOC容器初始化源码分析三:refresh(02)
3. prepareBeanFactory(beanFactory); //为BeanFactory配置容器特性,例如类加载器、事件处理器等 // 对beanFactory做一些设置,例如类加载器、SPEL解析器、指定bean的某些类型的成员变量对应某些对象. protected void prepareBeanFactory(ConfigurableListableBeanFac...
2019-08-09 17:15:42 154
原创 Spring的IOC容器初始化源码分析三:refresh(03)
11.finishBeanFactoryInitializationfinishBeanFactoryInitialization方法做了两件事: 1.beanFactory对象的初始化; 2.bean配置文件中配置的那些单例的bean,都是在finishBeanFactoryInitialization方法中实例化的; //对配置了lazy-init属性的Bean进行预实例化处理 p...
2019-08-09 17:08:10 193
原创 Spring的IOC容器初始化源码分析三:refresh(01)
SpringIOC 容器对 Bean 定义资源的载入是从 refresh()函数开始的,refresh()是一个模板方法, refresh()方法的作用是:在创建 IOC 容器前,如果已经有容器存在,则需要把已有的容器销毁和关闭, 以保证在 refresh 之后使用的是新建立起来的 IOC 容器。refresh 的作用类似于对 IOC 容器的重启, 在新建立好的容器中对容器进行初始化,对 Bean...
2019-08-09 17:07:29 290
原创 Spring的IOC容器初始化源码分析二:setConfigLocations
设置本地的配置信息,创建环境对象ConfigurableEnvironment 、处理ClassPathXmlApplicationContext传入的字符串中的占位符; setConfigLocations(configLocations);包:package org.springframework.context.support;类:AbstractRefres...
2019-08-09 16:56:24 185
原创 Spring的IOC容器初始化源码分析一:super(parent)
IOC 容器的初始化包括 BeanDefinition 的 Resource 定位、载入和注册这三个基本的过程。以 ApplicationContext 为例讲解,ApplicationContext 系列容器也许是我们最熟悉的,因为 Web 项 目 中 使 用 的XmlWebApplicationContext 就 属 于 这 个 继 承 体 系 , 还 有 ClasspathXmlApp...
2019-08-09 16:53:17 461
原创 SpringMVC源码解析三:RequestParamMethodArgumentResolver
supportsParameter(parameter)这里有一个常用的解析器: RequestParamMethodArgumentResolver类中:主要用来解析@RequestParam注解的参数public boolean supportsParameter(MethodParameter parameter) { if (parameter.hasParam...
2019-08-09 16:21:33 1134
原创 SpringMVC源码解析二:请求处理过程5
// 5.结果视图对象的处理applyDefaultViewName(processedRequest, mv);mappedHandler.applyPostHandle(processedRequest, response, mv);processDispatchResult(processedRequest, response, mappedHandler, mv, dispatch...
2019-08-09 09:30:50 319
原创 linux基本命令(五)
rm 删除命令语法rm [options] name...参数:-i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。实例删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:删库跑路大法宝:rm -rf *删除当前目录下的所有文件及目录,命令行为:rm -r *...
2019-08-08 18:20:10 194
原创 SpringMVC源码解析二:请求处理过程1
DispatcherServlet继承了FrameworkServlet,请求首先进入FrameworkServlet的service方法:FrameworkServlet类中:protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException...
2019-08-08 18:11:03 163
原创 SpringMVC源码解析二:请求处理过程4
第四步的处理过程:// 4.实际的处理器处理请求,返回结果视图对象mv = ha.handle(processedRequest, response, mappedHandler.getHandler());ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object hand...
2019-08-08 18:09:15 302
原创 SpringMVC源码解析二:请求处理过程3
第三步的处理过程: //3. 获取处理request的处理器适配器handler adapter HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());getHandlerAdapter方法: protected HandlerAdapter getHandlerAdapter(Object h...
2019-08-08 18:04:08 188
原创 SpringMVC源码解析二:请求处理过程2
第2步处理方法://遍历所有的映射器,直到找到能够配对该请求的一个映射器, // 在映射器内部配对到对应的Handler,最终生成HandlerExecutionChain对象并返回 protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { if (this.ha...
2019-08-08 18:03:01 433
原创 SpringMVC源码解析一:DispatcherServlet容器初始化
1.初始化过程:DispatcherServlet extends FrameworkServlet FrameworkServlet extends HttpServletBean implements ApplicationContextAwareHttpServletBean extends HttpServlet implements EnvironmentCapable, E...
2019-08-07 11:51:50 195
原创 SpringMVC源码解析一:HandlerMapping初始化
initHandlerMappings()方法初始化有两种方式:1.setApplicationContext()2.afterPropertiesSet()1.setApplicationContext()实现方式如下:首先进入DispatcherServlet 类中,可以看到DispatcherServlet 的继承关系:DispatcherServlet ex...
2019-08-06 15:23:01 361
原创 java代码实现tar包文件解压
使用commons-compress-1.9.jar进行解压 ,通过重写UnTar方法把源路径与目标路径转为文件,通过TarArchiveInputStream读入目标文件流,然后解压到目的地址。TarArchiveInputStream使用实例地址如下:https://www.programcreek.com/java-api-examples/?class=org.apache.com...
2019-01-23 20:03:44 4734
原创 java代码实现多文件tar包压缩且压缩文件能放到linux服务器上正常解压
java代码实现tar包压缩文件的代码在网上能找到很多,但是要不就是压缩之后的文件会有空文件夹在压缩包中,要不就是压缩之后的文件在Linux服务器上解压出现问题,产生这个问题的主要原因是文件的目录分隔符没有设置正确,如果我们想让压缩之后的文件能在Linux服务器上正常解压,该怎么做呢?首先我们要用File.separator代替“/”;(Windows和Linux目录分隔符的表示方法一个是“...
2019-01-17 16:19:21 2389
原创 linux基本命令(四)
cp 复制和移动文件cp: copycp SRC DEST -r 复制目录及其目录下的文件,递归复制 -i 如果目标存在,提示要不要覆盖,普通用户不提示,直接覆盖。 -f 强行复制,如果目标存在,直接覆盖。目标文件不能打开,先删除,在重试。 -p 保留属主,属组,权限,时间戳。 -a:归档复制,常用于备份 cp f...
2019-01-16 20:16:05 163
原创 linux基本命令(三)
文本编辑命令touch 创建文件mkdir创建文件夹-p 确保目录名称存在,不存在的就建一个。cat 打印文件内容到屏幕每一行都代表一个用户,每一行通过[:]分为七个部分。 1、账号名称 2、原先用来保存密码的,现在密码都放在/etc/shadow中,所以这里显示x 3、UID,也就是使用者ID。默认的系统管理员的UID为0,我们添加用...
2019-01-15 20:17:09 3083 11
原创 linux基本命令(二)
常用系统命令 echo 打印内容输出到屏幕 date 输出日期ps Process Status缩写 进程状态查看ps -ef|grep tomcat |管道符。把前面的值传入到后面top 查看CPU等命令(摘抄自Linux就该这么学)ifocnfig 网卡信息uname -a 查看Linux系统版本cat /proc/v...
2019-01-14 19:27:06 180
原创 linux基本命令(一)
Linux 首页面登录如图所示:[root@sgg ~]# root:登录用户名sgg: 主机名~ :索引目录,当前所在的目录# :代表超级用户(root)$ :普通用户[登录用户@主机名 索引目录(~家目录,当前所在的目录)]#号代表超级用户,$普通用户其中主机名可在 /etc/hosts 文件中修改:使用root用户登录机器,vi /etc/h...
2019-01-10 20:39:32 243
原创 VMware安装centos连接Xshell(二)
Xshell连接虚拟机1.设置网卡信息网卡信息在 /etc/sysconfig/network-script/ifcfg-ens33 vi /etc/sysconfig/network-script/ifcfg-ens33 设置网卡等信息ifcfg-ens33存放网卡信息,这个文件名可能每个机器不一样,但是具体的路径是在/etc/sysconfig/network-script/...
2019-01-05 14:25:12 272
原创 一、VMware安装centos连接Xshell(一)
下载安装VMware VMware官网地址:https://www.vmware.com,进入首页->点击download:选择下载版本:下载完成后,默认安装即可,其中安装的路径可自己选择,许可证秘钥可以上网搜索。下载需要的liunx系统ISO镜像,此处选择的是centos镜像,centos官网地址:https://www.centos.org 点击...
2019-01-05 13:06:58 323
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人