自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ascend2015的博客

不会写代码的化学狗不是好的韭菜

  • 博客(25)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 Java动态代理

所谓动态代理,就是在程序运行时生成代理类,而无需像静态代理那样一个个得编写代理类,动态代理的实现方式比较多:有java代理、CGlib代理、ASM库等等。依次了解一下。Java动态代理InvocationHandler接口Java动态代理需要代理类实现InvocationHandler接口,当我们通过代理类调用一个方法时,这个方法就会被转发给代理类的invoke方法来调用,InvocationHan

2017-09-30 22:34:26 277

原创 Java反射机制

讲道理其实这个并不是很难的东西,之前学的时候也不觉得难,但是学完之后也并没有觉得有什么卵用,毕竟当你使用框架的时候,核心的东西都是别人实现好的,没错,就是指例如Struts2中的各种invoke方法。但是直到我在Spring中看到动态代理,我觉得还是有必要把它拎出来,复习一下。简介根据百科的定义,所谓java反射,是指Java程序在运行过程中,对于任意一个类,依然能够获取其方法、属性;对于任意一个对

2017-09-29 20:49:05 220

原创 SpringMVC笔记(二)——默认配置

一个中心,三大组件在上一篇中大致地说了一下SpringMVC请求处理的基本流程,其中,DispatcherServlet是前端控制中心,HandlerMapping负责返回包含对应的handler的HandlerExcutionChain,HandlerAdapter负责执行相应的handler,最后由ViewResolver来根据ModelAndView来渲染视图。 这里HandlerMappi

2017-09-28 01:01:07 202

原创 JSTL详解

其实之前在用JSTL的时候还是比较懵逼的,虽然在列表页时通常都会用到foreach标签,但其实并没有真正的理解,这也是重新学习的理由。简介JSTL全称:JSP Standard Tag Library,即JSP标准标记库,它是一个开源的JSP标签库,由Apache在维护,封装了许多JSP应用程序通用的核心功能,因而使用广泛,JSTL由四个定制标签库(core、fmt、xml和sql)组成。其中,co

2017-09-27 01:04:11 342

原创 SpringMVC笔记(一)——请求流程

简介SpringMVC是一个开源的JavaWeb框架。Spring框架最初由Rod Johnson编写,据说只是为了证明一下,MVC并不是一件十分困难的事情。 SpringMVC提供了MVC架构以及用于开发灵活以及松散耦合的Web应用程序的组件,所谓MVC也就是将模型层、视图层以及控制层进行分离。前端控制器DispatcherServletDispatcherServlet是SpringMVC的核

2017-09-23 22:19:54 287

原创 Gradle——依赖管理和多项目构建

依赖管理这可能是没有必要专门写一篇的,毕竟看了下课程也太短了。 但是无所谓了,就记一下好了。 为什么要进行依赖管理?主要因为我们不想重复造轮子,但是在实际构建项目的过程中又不可避免地要使用外部类库以重用其现有功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖而带来的版本冲突问题。工件坐标所谓工件,我们可以简单将其理解为一个外部依赖jar包,而坐标则是它的三个属性:group、name

2017-09-18 16:45:21 812

原创 Struts2(11)——拦截器(二)

回顾上一篇主要介绍了拦截器的实现方式以及原理,以及自定义拦截器的三种方法,从本质上来说,它们都是实现了Interceptor接口,interceptor会贯穿整个项目的生命周期,根据doIntercept()中拦截业务逻辑与invocation.invoke()方法所处位置的不同分为前处理与后处理的拦截器。拦截方法的返回结果是视图逻辑名,如果拦截业务决定不将请求交由下一级拦截器或者Action处理,

2017-09-18 01:03:22 392

原创 spring笔记(1)——Spring介绍和helloWorld

在本系列笔记之前,已经看过极客学院上所有的免费版spring教程视频,极客学院上的视频短,但实在不够系统性,学习过程显得十分的零碎,因此效果是不太好的,这也是本次学习的重要原因。Spring的简介spring是一款诞生于2003年的轻量级开源框架,其诞生之初是为了解决企业级应用开发的复杂性,它的主要优势之一就是分层架构,分层设计架构允许开发者选择性使用组件。Spring的核心是控制反转(IOC)和面

2017-09-17 01:01:12 298

原创 Struts2笔记(10)——拦截器(Interceptor)(一)

拦截器(interceptor)用于AOP编程中某个字段或者方法访问前以及被访问后加入某些操作,拦截是AOP的一种实现策略。拦截器的使用还有一个重要的概念,就是拦截器链(InterceptorChain),意味着被使用的拦截器将会按照一定的顺序形成一条链,在访问被拦截的方法或者字段时就会被顺序调用。拦截器的实现原理拦截器大多是通过代理方式实现,Struts2的实现方式相对较为简单。当请求Struts

2017-09-16 21:57:01 330

原创 Struts2(9)——struts2与OGNL的结合(二)

前面几篇笔记中,我们在jsp页面中向Action传递了参数,通过这样三种方式: 1.属性驱动 将参数作为Action的一个属性 2.对象驱动 将实体类作为Action的属性 3.模型驱动 Action实现ModelDriven接口;实体类作为私有变量并实例化;实现getModel()方法,并返回实体对象。现在探究一下原理: 在数据提交到Action的过程中将会经过

2017-09-14 19:39:31 213

原创 Struts(8)——OGNL与Struts结合的原理

ValueStackValueStack是Struts2的一个借口,字面翻译为值栈,OgnlValueStack是它的一个实现类。在客户端向程序发起请求时,Struts2会创建一个Action,同时创建一个OgnlValueStack的实例,OgnlValueStack贯穿整个Action的生命周期,Struts2将请求参数封装为一个对象放入到值栈中,并通过OGNL表达式访问该对象。OgnlValu

2017-09-14 15:39:52 282

原创 Struts(7)——OGNL表达式

OGNL的简介OGNL即Object Graphic Navigation Langauage,译为对象图导航语言,是一种功能强大的表达式语言,通过简单一致的语法,可以轻易地访问对象的属性、方法,遍历整个对象的结构图。Struts2 的默认表达式语言就是OGNL,它试图以OGNL代替原来的EL表达式语言,来实现界面数据的绑定,也就是将视图界面中的某个元素和模型层的某个对象关联在一起,以便修

2017-09-13 01:04:13 264

原创 Struts2(6)——Action传递参数

1. 将参数作为Action的成员变量在Action中给定一个私有属性,并实现其set、get访问器,然后即可直接接收请求中的参数。package com.imm.demo;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import java.util.Map;pu

2017-09-12 20:17:22 1518

原创 深入理解ThreadLocal

Struts2的笔记中,在学习关于调用ServletAPI的过程中,我们接触到关于如何获取ActionContext对象,它是通过ThreadLocal设定一个为线程所独享的对象。关于ThreadLocal,我有所疑惑,所以单独列出来探索一下。ThreadLocal的介绍ThreadLocal在java.lang包下,译为线程局部变量,它并不是为了解决多线程共享变量而存在的,而是为每个线程创建一个独

2017-09-11 17:05:38 447

原创 Struts(5)——调用ServletAPI

Struts2 中有一个类,叫做ActionContext,它是Action的上下文,Struts2中的Action就通过它来访问原生Servlet的API。该类中封装了所有用于访问Servlet的方法:1.static HttpServletRequest getRequest():获得HttpServletRequest对象;2.static HttpServletResponse g

2017-09-10 23:16:12 230

原创 Struts(4)——结果处理方式

结果的处理大致可以分为四种:转发、重定向、转发到Action以及重定向到Action。 这些方式可以在result标签中通过type属性进行配置。1. 转发默认的处理方式是转发ServletDispatcherResult 可以在package org.apache.struts2.dispatcher下查看到其源码,其内部doExcute(String finalLocation, Actio

2017-09-10 12:43:23 561

原创 Struts2笔记(3)——Struts的配置文件详解

基础配置1.<package/>元素:将Action配置封装,package中可以有多个Action;name:给予package一个名字作为标识;namespace:给Action的访问路径中定义一个命名空间;extends:继承一个指定包,这里可以先设定为”struts-default”,意为继承默认包,该包在Struts的默认配置文件struts-default.xml中可以找到,它为我

2017-09-09 14:10:19 512

原创 Struts2笔记(2)——Struts的请求流程

Struts2.0简介Struts2是阿帕奇旗下的一款流行的Web框架,基于MVC模式,成功结合了Webwoker和Struts1.X的优势。虽然名字上叫做Struts2.0,但除此之外它和Struts1.X的关系并不大。 Struts2.0的核心功能都是使用拦截器实现“值栈”这个概念,OGNL表达式和Struts2.0标签来解决应用程序数据,以及大量的注解,使得这个框架更易于使用。这些优势足以说

2017-09-07 17:25:49 391

原创 struts2笔记(1)——搭建一个HelloWorld

1.导入struts2相关依赖IDE使用IDEA2017 以下是maven的pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/

2017-09-07 00:52:59 323

原创 Hibernate(6)——注解的使用

Hibernate注解的简介Hibernate注解基于JPA2规范,并支持其所有功能,它的分类可以分为:类级别的注解,属性级别的注解以及映射关系的注解。所有JPA注释都在javax.persistence.*包中定义。 Hibernate EntityManager实现由JPA规范定义的接口和生命周期。使用注解的优势使用hibernate注释的核心优点是我们不需要创建映射(*.hbm.xml)文件直

2017-09-05 20:51:06 730

原创 Hiernate(5)——缓存策略的概述

缓存这里的缓存并不是说CPU的内存或者一二级缓存,而是指为了降低应用程序对物理数据源访问的次数从而提高运行程序的性能的一种策略。 ORM框架访问数据库的效率直接决定了应用程序的运行速度,因而提升和优化ORM的执行效率是至关重要的,Hibernate缓存是提升和优化Hibernate性能的重要手段,所以需要掌握Hibernate缓存的配置和使用。缓存的工作原理区别与不使用缓存时应用程序直接访问物理数

2017-09-05 17:16:56 338

原创 Hibernate(补充)——inverse和cascade属性的用法

<set/>标签中有一个<inverse/>属性,它是用来指定关联关系的控制方向的,默认由一方来进行维护,关联关系中,inverse=”false”的一方是主动方,主动方负责维护关联关系。 在上一篇中,我们设置了单向的多对一,上上篇中,设置了单向的一对多。但是在事务中。我们依然需要保存班级表、保存学生表这样的操作。有没有可能我们在保存班级表的同时,学生表的数据也自动保存。 当然是可以的。 这需

2017-09-04 22:02:24 448

原创 Java基础数据结构——链表与顺序表

抽象数据类型所谓抽象数据类型,就是带有一组操作的对象的集合。一般常有的操作是增(add)、删(delete)、包含(contains)、查(find)。我们常用的一些数据结构类型有表、栈、队列等等,这也是数据结构中最为基本的类型。这些东西老是没法熟记,要写的时候虽然也能憋出来,总觉得不够畅快。这里先说下表,表一般是两种类型,以数组为核心的顺序表和以抽象节点为核心的链表。先说下顺序表

2017-09-03 14:53:47 401

原创 Hibernate(4)——单向多对一关系

即在一方的表中的一个外键参照另一张表的主键。通过在多方持有一方的引用实现,需要在多方使用 配置。首先在多方的实体类中定义一个多方的引用。依然以上篇中的Student类为例//多方中定义一个一方的引用,并添加其setter和getterprivate Grade grade;然后修改其映射文件。xml version="1.0" encoding="UT

2017-09-02 01:06:29 204

原创 Java类的生命周期

1. Java虚拟机和程序的生命周期当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程。Java虚拟机进程从启动到终止时,称为Java虚拟机的生命周期。在以下情况下,Java虚拟机将结束生命周期:程序正常结束。程序在执行中因为出现异常或者错误而异常终止。执行了System.exit()。由于操作系统出现错误而导致Java虚拟机进程终止。 Java程序从开始运

2017-09-01 23:58:39 299

空空如也

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

TA关注的人

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