自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

远方水木

每一个不曾起舞的日子,都是对生命的辜负

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

原创 3. 自动检测Bean

自动检测BeanSpring提供 <context:component-scan> 元素,除了完成与 <context:annotation-config> 一样的工作,还可以自动检测和定义Bean。有了 <context:component-scan> 元素,可以不使用 <bean> 元素,Spring应用中的大多数Bean能实现定义和装配。...

2018-08-02 17:35:31 364

原创 2. 使用注解装配

使用注解装配从Spring2.5开始,增加了使用注解自动装配Bean属性的新方式,类似于在XML中使用autowire属性自动装配。使用注解方式允许更细粒度的自动装配,可以选择性的标注某一个属性来对其自动装配。Spring容器默认禁用注解装配,启用方式:使用Spring的context命名空间配置中的 <context:annotation-config/>元素,告诉Spr...

2018-08-02 17:05:07 671

原创 1. 自动装配Bean属性

自动装配Bean属性3种类型的自动装配Spring提供几种技巧用于减少XML的配置数量:自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系。自动检测(autodiscovery)比自动装配更进一步,让Spring能自动识别哪些类需要被自动...

2018-08-02 16:43:53 548

原创 4. 使用表达式装配

使用表达式装配SpEL导言我们前面在配置文件中,为Bean注入值是在编译器就已经完成的(可以这么认为),但是如果为属性装配的值要在运行期才能得到,就需要使用表达式来装配。Spring 3引入Spring表达式语言SpEL,通过在运行期执行的表达式将值装配到Bean的属性或构造器中。SpEL有许多特性:使用Bean的ID来引用Bean调用方法和访问对象的属性对值进行算术...

2018-08-02 16:36:43 233

原创 3. 注入Bean的属性

注入Bean的属性注入简单值一般来说,JavaBean的字段是私有的,带有一组存取器方法(setXXX()和getXXX())Spring借助字段的的set方法来配置字段,以实现setter方式的注入。示例:继上文,Idol秀来了一位有天赋的的音乐演奏参赛者,该表演参赛者实现了表演接口。package com.li.spring.chineseidol;import...

2018-08-02 16:08:19 282

原创 2. 声明简单的Bean

声明简单的Bean以及Bean的作用域声明简单的Bean示例:Chinese Idol 中国偶像选秀节目下面是一个表演者的接口,其中有表演方法,当然,表演会有意外,需要抛出异常package com.li.spring.chineseido;public interface Performer { void perform() throws Performanc...

2018-08-02 15:59:21 236

原创 1. 依赖注入以及创建Spring配置

依赖注入以及创建Spring配置依赖注入依赖注入,即Spring Dependence Injection,更经典的叫法是控制反转(IOC:Inversion of Control)。容器通过注入设定实现对象来解决对象之间的依赖关系(推模式)传统的组件初始化或用服务定位模式,组件实现定位(拉模式)依赖注入,此词为Martin Fowler提议的术语,字面意思上可以更好的理...

2018-08-02 15:56:11 148

原创 3. Bean容器

Bean容器应用上下文Spring应用中,对象生存于Spring容器当中,容器是Spring框架的核心,Spring容器使用依赖注入管理构成应用的组件,创建相互协作的组件之间的关联。Spring容器:Bean工厂:生存创建Bean对象应用上下文:Application Context,应用上下文,一个更高级的Bean工厂,基于Bean工厂而建,并提供面向应用的服务。S...

2018-08-02 15:40:53 216

原创 2. Spring框架

Spring框架Spring模块获取Spring发布包:由于现在Spring官网改版了,放在Github上托管,所以下载方式比较麻烦些,具体教程网上有。核心Spring容器核心容器负责Spring应用中Bean的创建和管理。Bean工厂:提供依赖注入应用上下文:提供配置Spring的不同方式该模块还提供许多企业服务:邮件、JNDI访问、EJB集成、调度...

2018-08-02 15:38:24 159

原创 1. 简化Java开发

简化Java开发Spring的诞生应对应用的复杂性,Spring的关键策略基于POJO的轻量级和最小侵入性编程通过依赖注入和面向接口实现松耦合基于切面AOP和惯例进行声明式编程通过切面和模板减少样板式代码POJO之美定义POJO(Plain Old Java Objects):简单普通的Java对象。不具有任何特殊角色,不继承/实现任何其他Java框架...

2018-08-02 15:33:58 732 2

原创 单例模式与延迟加载

单例模式与延迟加载首先,什么是单例模式(Singleton Pattern)?解释一下,单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类只有一个实例,即一个类只有一个实例对象。数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”。单例模式的实现public final class Ea...

2018-07-17 13:04:08 1621

原创 习题-纸牌排序

纸牌排序在学习《算法》(第四版)时,碰到这么个纸牌系列的问题。纸牌排序Question:说说你会如何将一副扑克牌按花色排序(花色顺序为黑桃、红桃、梅花、方片),限制条件是所有牌都是背面朝上排成一列,而你一次只能翻看两张牌或交换两张牌(保持背面朝上)这个问题实际上就是一次只能比较某两个元素而实现排序,回想排序算法,发现使用插入排序算法的思想和冒泡排序的思想是很可行的。出列...

2018-07-12 10:30:33 3849 1

原创 解决aAJAX请求过滤器重定向不跳转

解决ajax请求过滤器重定向不跳转最近写的一个小商场项目,其中有一个过滤器(Filter),用于拦截请求,判断用户是否登录,如果未登录则跳转到登录页面,即在商品页面,点击加入购物车时,要先登录才行,但是加入购物车使用的是AJAX异步请求,而默认AJAX是不支持重定向的,因为AJAX本身就是局部刷新,不会重新加载页面的。所以需要在过滤器里再加个AJAX请求判断。我们如果在调试中使用浏览器开发...

2018-07-08 16:27:24 3262 2

原创 使用请求转发加载不出目的页面CSS文件的解决方法

使用请求转发加载不出目的页面CSS文件的解决方法当我们请求转发的目的页面是HTML文档或者JSP服务页面时,可能会出现一种情况,那就是页面的CSS文件或JS文件没有加载进去,那么这是上面问题呢?实际上这是路径的问题。例如,假定我们的项目名称为:Store,当我们进入一个Servlet时(此Servlet的url-pattern为:do/servlet),重定向的目的JSP为:index.j...

2018-07-07 18:16:09 5213 3

原创 JQuery AJAX

JQuery AJAXJQuery - AJAX load()方法jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。语法:$(selector).load(URL,data,callback);必需的 URL 参数规定您希望加载的 URL。可选的 data 参数规定与请求一同发送的查...

2018-06-15 17:23:45 221

原创 Ajax

Ajax额,先吐槽一下,今天真是BUG众多的一天,JavaScript 调 BUG 是真的难受。回到正题。Ajax即 “Asynchronous JavaScript And XML” (异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 是一种用于创建快速动态网页的技术,它不是一种新的编程语言,而是一种使用现有标准的新方法。通过在后台与服...

2018-06-15 17:23:27 146

原创 JSON基础

JSON基础JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式,采用完全独立于编程语言的的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。特点:JSON 是纯文本JSON 具有“自我描述性”(人类可读)JSON 具有层级结构...

2018-06-15 17:23:00 171

原创 Java操作JSON

Java操作JSON在这之前,我们需要 gson.jar 解析工具包,gson 是 Google解析JSON的一个开源框架,同类的还有 json.lib.jar 等等。Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。基本数据类型的解析以及生成解析Gson gson = new Gson();i...

2018-06-15 17:22:33 538

原创 HQL的概念和API

HQL的概念和APIHQL(Hibernate Query Language)是面向对象的查询语言,它和SQL语言有些相似。在Hibernate提供的各种检索方式中,Hibernate是使用最广的一种检索方式。HQL的功能在查询语句中设定各种查询条件支持投影查询,即仅检索出对象的部分属性支持分页查询支持连接查询支持分组查询,提供内置聚集函数能够调用用户定义的SQL函数...

2018-06-12 12:44:42 711

原创 乐观锁

乐观锁概念乐观锁假定当前事务操纵数据资源时,不会有其他事务同时访问该数据资源,能保证多个事务并发访问数据,又能防止第二类丢失更新问题。HIbernate实现在应用程序中,可以利用Hibernate提供的版本控制功能来实现乐观锁。对象-关系映射文件中的<version>元素和<timestamp>元素都具有版本控制功能:<version&g...

2018-06-12 12:43:52 1367

原创 悲观锁

悲观锁概念悲观锁(Pessimistic Lock),指在应用程序中显示地为数据资源加锁。悲观锁,顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁假定当前事务操纵数据资源时,肯定还有其他事务同时访问该数据资源,为了避免当前事务的操作受到干扰,先锁定资源。尽管悲观锁能够防止丢失更新和不可重...

2018-06-12 12:43:27 7008

原创 事务的特征以及Hibernate事务

事务的特征以及Hibernate事务事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么都做,要么都不做。一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation):一个事务的...

2018-06-12 12:39:38 781

原创 Hibernate的检索、级联操作以及批处理

Hibernate的检索、级联操作以及批处理HIbernate的检索方式立即检索:查询返回的对象中包含所有的属性(将所有的属性都加载)延迟检索(延迟加载):查询返回的对象仅仅包含OID(Object Identifier:对象标识符),其他属性为空,只有在调用该对象的setter或者getter方法时,Hibernate才会根据OID从数据库中查询并加载其他属性。实际上Hib...

2018-06-12 12:39:03 152

原创 02. Session常用方法:delete、load、get

Session常用方法:delete、load、getdelete方法该方法用于从数据库中删除与Java对象对应的记录如果传入的参数是持久化对象,Session就执行一个delete语句如果传入的参数是游离对象,那么先使游离对象被Session关联,使它变为持久化对象,然后再执行一个delete语句//启动事务1trans=session.beginTransaction(...

2018-06-12 12:37:48 327

原创 01. Session 常用方法:save、update、saveOrUpdate

Session 常用方法:save、update、saveOrUpdatesave方法该方法传入的参数是临时对象 //启动事务1trans=session.beginTransaction();/*临时对象*/Student student=new Student();student.setId("2017");student.setName("Vin");stud...

2018-06-12 12:30:18 3815

原创 02. Hibernate的二级缓存

Hibernate的二级缓存我使用的Hibernate版本:5.2.0 finalHibernate二级缓存的概念需要配置才能使用,该缓存用来存放被程序读过的数据,将来其他程序可能会重用这些数据,因此这个二级缓存中的数据能被所有的程序共享。一级缓存,如果我们发起一个请求,那么将创建一个线程,该线程绑定一个Session对象,此Session对象对应一个事务,并维护一个一级缓存,...

2018-06-12 12:29:49 114

原创 01. Hibernate一级缓存

Hibernate缓存Hibernate一级缓存Hibernate一级缓存默认就是存在的,一级缓存就是Session对象维护的一个Map键值对集合。Session缓存的作用减少访问数据库的频率应用程序从内存中读取持久化对象的速度显然要比到数据库中查询数据的速度快多了,因此session的缓存可以提高数据访问的性能。验证......trans=session....

2018-06-12 12:26:02 103

原创 Session的缓存与对象

Session的缓存Java对象的生命周期如果希望一个Java对象一直处于生命周期中,就必须保证至少有一个变量引用它,或者在一个Java集合中存放了这个对象的引用。Session的缓存Session对象中维护的缓存即称为Hibernate的一级缓存(first cache)在Session接口的实现类中定义了一系列的Java集合,这些Java集合构成了Session的缓...

2018-06-12 12:24:38 405

原创 11. 集合映射-Map

集合映射-Map键值对映射模型Map表结构items_map(父表)CREATE TABLE items_map( id NUMBER(10) PRIMARY KEY, name VARCHAR2(20));images_map(子表)不设置主键,使用两个栏位作为联合主键CREATE TABLE images_map( im...

2018-06-11 21:09:23 251

原创 10. 集合映射-bag

集合映射-bagBag,实际上就是List的另一个版本,我们使用List存储元素时,元素以先后添加顺序存储在集合中,映射到数据库中时,也会保持先后顺序,当我们从数据库中取出数据时,数据依然有序,如果我们并不想维持元素之间的先后顺序关系,那我们可以使用没有顺序的List——Bag。Bag表结构items_bag表(父表)CREATE TABLE items_bag(...

2018-06-11 21:09:04 219

原创 09. 集合映射-list

集合映射-list我们在学集合类时知道,list集合内部存储的数据是有序的,如ArrayList是线性数组,而LinkList是线性链表。list映射值类型表结构用户表items_set,用户表中存储用户的id与姓名CREATE TABLE items_set( id NUMBER(10) PRIMARY KEY, name VARCHAR2(20)...

2018-06-11 21:04:17 303

原创 08. 集合映射-set

集合映射-set介绍实际上,set这种集合映射我们在前面已经学习关联关系映射时已经用过了,实体类(实体类都在在数据库中有对应的表)中有一对多或者多对多的关系,并且我们可以通过某一侧访问到另一侧,就是通过在类中设置 set集合并配置set映射来实现的。在Hibernate配置中有两种数据类型,一种是值类型,另一种是实体类型,实体类型都有映射文件,而值类型则没有,我们前面使用的就是实体...

2018-06-11 21:03:57 160

原创 07. 组件映射

组件映射组件映射的引出假设我们有一个Person实体类,该实体类有id,name,地址信息(province,city,street)等;而其他的一些类中也会有地址信息,比如Student实体类、Customer实体类,这时我们可以把地址信息单独抽象出来封装到一个Address类中,在把Address对象作为其他实体类的属性,以实现代码重用。但是,我们把实体类映射到表中时,需不需要单独...

2018-06-11 21:03:01 206

原创 06. 继承关系映射

继承关系映射继承关系映射分为三种:整个继承结构映射一张表每个类映射一张表有多少个类就映射多少张表,包括子类父类每个具体子类映射一张表只需要每个子类映射一张表,而父类不映射到表用到的例子在研究继承关系映射时,我们用到了一个继承关系的例子。父类:BillingDetails(账单明细)id:Longowner:String(拥有者)code:Strin...

2018-06-11 21:02:37 229

原创 HashMap底层代码学习

HashMap底层源码学习前述最近在微信工作号上看到一篇好文章,忍不住推荐一波,供大家学习,我结合文章内容再自己去翻了一翻源码,学习一下HashMap。众所周知,HashMap是一个用于存储Key-Value键值对的集合,并且是线程不安全的,其中每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个名为 table 的数组当中,该数组存储的是 Node<K, ...

2018-06-11 21:02:02 298

原创 Java位运算符

Java位运算符今天在学习 HashMap 的时候,发现这么一段代码:static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >&...

2018-06-07 18:57:31 196

原创 软碟通(UltraISO)刻录光盘以及制作U盘启动盘教程

软碟通(UltraISO)刻录光盘以及制作U盘启动盘教程使用 UltraISO 刻录光盘映像文件,以*.iso(或BIN、NRG、CIF、IMG、BWI、DAA、DMG、HFS等27种常见光盘映像格式)为扩展名的映像文件。UltraISO刻录软件,电脑需要安装刻录软件(UltraISO软碟通),才能实现刻录。空白的光盘,刻录ISO镜像需要空白的光盘。刻录光驱,电脑需要有刻录光驱...

2018-06-07 11:59:31 11081 1

原创 05. 关联关系映射(多对多)

关联关系映射多对多关联关系映射(Engineer和Technology)这里我们学习Hibernate中多对多的关联关系映射,我们使用的例子是Engineer(工程师)和Technology(技术),一个Engineer可以掌握多门技术,一门Technology也可以被多个工程师掌握。多对多双向关联关系的表结构Engineer表CREATE TABLE t_engi...

2018-06-07 10:03:30 258

原创 04. 关联关系映射(一对多)

关联关系映射一对多双向关联关系(Order和OrderLine)我们使用订单(Order)和订单项(OrderLine)来演示这种关系一对多双向关联关系的表结构Order表CREATE TABLE t_order( id number(10) PRIMARY KEY, ordered_date date NOT NULL, shipped_d...

2018-06-06 20:58:57 275

原创 03. 关联关系映射(一对一)

关联关系映射一对一关联关系表结构中关系为一对一,那么类结构中也是一对一的关系。表结构层面上,一对一的关系都是双向的,从任何一侧表都可以访问到对方另一侧表中的内容。而类一对一的关联关系可以分为单向和双向两种。双向表示在两个关联的类中,都存放对方类信息,并提供相应的获取和设置方法;单向表示只在某一侧存放另一方的信息,我们只能从这一方去访问另一方,而不能从另一方访问这一方。一对一单向...

2018-06-06 20:58:33 213

空空如也

空空如也

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

TA关注的人

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