自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chr1sgong的博客

记录一下,留下印象

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

原创 Java多线程之synchronized及其优化

Synchronized和同步阻塞synchronized是jvm提供的同步和锁机制,与之对应的是jdk层面的J.U.C提供的基于AbstractQueuedSynchronizer的并发组件。synchronized提供的是互斥同步,互斥同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻只有一个线程访问。 在jvm中,被synchronized修饰的代码块经javac编译之后,会...

2018-05-06 21:23:39 3739

原创 java内部类

可以将一个类的定义放置在另一个类的定义的内部,这就是内部类。为什么需要内部类一般来说,内部类继承某个类或实现某个接口,内部类的代码操作创建它的外围类的对象,所以可以认为内部类提供了某种进入其外围类的窗口。每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。从这个角度看,内部类使得多继承的解决方案变得完整。使用内部类,

2018-01-20 16:45:12 369

原创 Spring-AOP编程(JavaConfig)

本文是Spring AOP官方文档部分内容的简记。1,IntroductionSpring IoC容器不依赖于AOP,但是作为IoC容器的补充,AOP提供了非常强大的中间件解决方案。AOP在Spring框架中的用途:提供声明式企业级服务,特别是作为EJB声明式服务的替代品,典型的应用就是Spring声明式事务管理。允许用户自定义切面1.1,AOP概念切面(A

2018-01-19 14:21:17 1249 1

原创 Spring Boot 应用上下文刷新过程

前面讲了Spring Boot基于JavaConfig的执行流程,主要讲了应用环境的准备和初始化、应用上下文的实例化和准备,在应用上下文实例化时只注册了为后续解析配置必要的bean,应用上下文中基本上没有任何东西。本文通过分析AbstractApplicationContext#refresh()的执行来对Spring Boot的应用上下文的配置进行讲解,同时说明Spring Boot自动配置的实

2018-01-18 15:06:23 3445

原创 AnnotationConfigApplicationContext的实例化过程

1,类继承结构理解AnnotationConfigApplicationContext的实例化过程之前先看一下它的类继承结构: 主要涉及到的类或接口有以下几个:GenericApplicationContext——通用应用上下文,内部持有一个DefaultListableBeanFactory实例,这个类实现了BeanDefinitionRegistry接口,可以在它身上使用任意的

2018-01-17 12:02:10 24452 2

原创 Bean的实例化和生命周期

DefaultListableBeanFactory类层次结构在开始Bean的实例化和生命周期之前有必要对Bean所处的位置以及相关的类层次结构进行了解。下图是DefaultListableBeanFactory的类层次结构 其中有几个比较重要的类或接口需要知道:DefaultSingletonBeanRegistryDefaultSingletonBeanRegistr

2018-01-16 21:49:02 855

原创 Spring-IoC的概念和配置(JavaConfig为例)

BeanFactory & ApplicationContextIoC(DI) IoC is also known as dependency injection (DI). It is a process whereby objects define their dependencies, that is, the other objects they work with, only thr

2018-01-11 17:09:14 730

原创 Java 泛型以及一些需要注意的问题

Java泛型用于解决API设计者在设计底层程序时不知道应用程序开发者会具体使用哪些类型的应用场景。比如Java集合框架,API设计者不知道应用程序设计者在调用集合API时会往里面加入什么类型,JDK5通过引入泛型很好地解决了这个问题。写在前面的—泛型程序主要用于库程序的开发,但是在应用程序开发中也会用到,作为一名码农,虽然用到泛型的场合比较少,但是还是有必要弄懂,以防工作卡卡壳。1 泛型类的设计J

2017-10-16 20:34:28 843

原创 Java IO

1,java.io 包简介java.io 包用来处理java中基本的输入与输出才操作,主要关注点在文件的输入输出,网络流,内部内存缓冲等。I/O类可以分为四个部分:从数据流中读取输入向数据流中写输出在本地文件系统中操作文件处理对象序列化 java的I/O以流为基础。通信中,流表示数据的通道,可以向流中写数据 ,也 可以从流中读取数据,如图1所示为应用程序通过java io api向流中读写

2017-10-16 19:25:53 257

原创 Spring Security

1, Security Filter ChainSpring Security完全基于标准的servlet filter技术,没有使用任何servlets或者其他基于servlet的框架,Spring Security和任何特定的web技术没有很强的关联。Spring Security处理HttpServletRequest和HttpServletResponse,并且并不关心这些请求是来自于浏览器

2017-10-12 10:05:58 203

原创 Spring Boot 注解笔记

@SpringBootApplicationSpring Boot应用的入口程序由@SpringBootApplication注解,它是有以下几个更加具体的Spring 注解构成:@Configuration:任何被@Configuration注解的类会由Spring启动,其它bean的定义也定义在这些类中。@EnableAutoConfiguration:这个注解告诉Spring根据pom.x

2017-10-08 20:09:32 394

原创 Spring Data & JPA

本文主要翻译自Spring Boot 官方参考文档JPAJPA 是Java Persistence API的简称,JPA是一种将对象映射到关系型数据库的标准技术。spring-boot-starter-data-jpa很好地实现了这种技术。主要包括以下三个关键的依赖:Hibernate - 一种最流行的JPA实现Spring Data JPA - 可以利用它实现基于JPA的仓库Spring O

2017-10-08 17:12:32 386

原创 Spring实战笔记——面向切面编程(一)

上一章基本完成了Spring依赖注入的相关学习,本章进入面向切面编程的学习。本文先对面向切面编程的思想进行记录,下一阶段进行深入的学习。本章内容面向切面编程的基本原理通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 引言——在软件开发中,散布于应用中多处的功能被称为横切关注点(cross-cutting concern),横切关注点应该是与业务逻辑相分离的,实

2017-08-07 22:23:35 395

原创 Spring实战笔记——运行时值注入

上一节讲了Spring高级装配的一些要点,主要是将一个bean的引用注入到另外一个bean的属性或构造器参数中。但是,我们有时候需要将一个值注入到bean的属性或者构造器参数中,而这个值是在运行时产生的,这一节主要讲bean装配中经常遇到的运行时值注入问题。Spring提供了两种在运行时求值的方式:属性占位符(Property PlaceHolder)Spring表达式语言(SpEL) 1,

2017-08-07 21:06:20 1027

原创 Spring实战笔记——Bean的高级装配

上一章主要讲了Spring中Bean的基本装配,包括JavaConfig和XML,以及二者混合使用的方法,本章继续讲解Bean的一些高级装配方法。本章内容:Spring profile条件化的bean声明自动装配与歧义性 bean的作用域 1,Spring profile在不同的环境中,我们创建某个bean的方式可能不同,比如,在开发阶段,我们可能使用集成的数据库作为DataSource

2017-08-06 13:39:49 345

原创 Spring实战笔记——装配Bean

上一章主要讲述了Spring的主要设计思路。接下来的章节将讲解Spring各种设计思路的具体实现。本章和下一章重点讲解Bean的装配方式,本章将重点介绍Bean的基本装配方法。本章内容:声明bean构造器注入和Setter 装配bean 控制bean的创建和销毁 一个软件的作用是实现某种功能,当然功能也有简单和复杂之分。你可以将一个具有复杂功能的应用程序看作一个功能来实现——写一个很大很

2017-08-05 17:30:35 305

原创 Spring基础

本章内容:Spring的bean容器Spring的核心模块 Spring生态系统Spring采用的4种设计策略基于POJO的轻量级和最小侵入性编程;通过依赖注入和面向接口实现song;通过切面和惯例进行声明式编程; 通过切面和模板减少样板式代码。 1, bean容器很多框架通过强迫应用继承它们的类或者实现它们的接口从而会导致应用与框架绑死。Spring不会强迫你实现Spring规范

2017-08-05 12:55:07 237

原创 没有脚本的JSP

使用表达式语言(EL)可以在JSP脚本中避免Java代码,有助于实现前端人员和后端人员的分工明确。本章内容EL中的变量EL中的操作符 EL中的函数 标准动作 在JSP中,脚本代码包括:声明、scriptlet和表达式。与bean有关的标准动作如下:jsp:useBean声明和初始化一个bean属性<jsp:useBean id="beanID" class="foo.BeanID"

2017-07-29 20:11:58 266

原创 Git常用指令

本章学习常用的git指令,git是分布式版本管理的典型代表。在实际的工程项目中通常会有多个工程师在多个场合下工作,因此有必要对工程进行管理。目前开始学习git,为自己的项目管理打下基础。1,git环境配置git的安装就不说了,OSX、linux和windows都有对应的安装版本。在安装好git后需要对git环境进行配置,git使用git config工具进行配置,主要有以下三个配置文件:/etc

2017-07-28 11:38:23 308

原创 Java异常、断言、日志与调试

当程序出错时,一个工作良好的程序应该能做到一下几点:1,向用户通告错误;2,保存所有的工作结果;3,允许用户以妥善的形式推出程序。本章内容处理错误捕获异常 使用异常机制的技巧 使用断言 记录日志 调试技巧 1,处理错误1.1 异常分类异常处理的任务就是将程序的控制权从错误产生的地方转移给能够处理这种情况的错误处理器。 在java程序中,所有的异常对象都是继承Throwable类的实

2017-07-27 00:03:56 542

原创 JSP

写在前面,先抄一段古文,学一点哲学。古人之观于天地、山川、虫鱼、鸟兽,往往有得,以其求思之深而无不在也。夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在与险远,而人之所罕至焉,故非有志者不能至也。有志矣,不随以止也,然力不足者,亦不能至也。有志于力,而又不随以怠,至於幽暗昏惑而无物以相之,亦不能至也。然力足以至焉,於人为可讥,而在己为有悔;尽吾志也而不能至者,可以无悔矣,其孰

2017-07-26 22:27:40 240

原创 会话管理

由于HTTP协议的无状态性,web服务器无法直接处理跨多个请求保留与客户的会话状态的情况,一种比较好的解决方法是使用本章所用的会话管理。本章内容将对象保存到会话对象中,并从会话对象中读取对象何时创建、销毁会话对象,销毁会话对象使用什么机制使用会话监听者Web容器采用的会话管理机制,cookie的使用以及使用URL重写1,HttpSessionHttpSession对象可以保存跨同一个客户

2017-07-25 23:47:45 265

原创 Spring web 应用程序

这一节内容是学习spring web开发的一部分,在接下来的时间会陆续补充spring工作原理的相关章节。本章内容映射请求到spring控制器透明地绑定表单参数校验表单提交1,spring MVC基础spring MVC工作的基本思路是将请求在调度Servlet、处理器映射(handler mapping)、控制器以及视图解析器(view resolver)之间移动。 请求离开浏览器。Di

2017-07-24 15:34:49 251

原创 Servlet之属性和监听者

属性和监听者这篇博文主要是《Head First Servlets & JSP》第五章的笔记,由于前四章主要讲基础,这里不会详细记录,以后抽时间把前四章进行一个总结。本章知识要点:怎样初始化servlet和ServletContext编写servlet代码来增加、获取和删除属性描述请求、会话和Web应用的Web容器生命周期事件模型描述RequestDispatcher机制。1,初始化参数初

2017-07-24 00:20:23 331

空空如也

空空如也

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

TA关注的人

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