
Spring
文章平均质量分 76
李灵晖
正走在技术道路上的求知者
展开
-
从头认识Spring-目录
实战篇:第一章 Spring简介与Bean1.1 什么是依赖注入?为什么需要依赖注入?1.2 什么是AOP?为什么需要面向切面编程?1.3 Spring的容器与Bean1.4 通过构造器注入Bean1.5 Bean的作用域原创 2016-01-30 16:10:32 · 5037 阅读 · 4 评论 -
从头认识Spring-1.15 对SpEl的值的操作(1)-数值运算
这一章节我们来讨论一下对SpEl的值的运算。1.domain烤炉类:(不变)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17;public class Oven { private String name = ""; private double size = 0; public double getSize原创 2016-02-04 15:27:13 · 1839 阅读 · 0 评论 -
从头认识Spring-2.6 在注解中使用表达式@Value(2)-使用表达式注入其他对象的值
这一章节我们来讨论一下在注解中使用表达式@Value,使用表达式注入其他对象的值。1.domain蛋糕类:只有一个public的名称package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_18;import org.springframework.beans.factory.annotation.Value;public cl原创 2016-02-16 23:46:28 · 3844 阅读 · 0 评论 -
从头认识Spring-2.6 在注解中使用表达式@Value(1)-注入普通值
这一章节我们来讨论一下在注解中使用表达式@Value注入普通值。1.domain厨师类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_17;import org.springframework.beans.factory.annotation.Value;public class Chief { @Value("原创 2016-02-16 23:29:58 · 3459 阅读 · 1 评论 -
从头认识Spring-2.5 @Autowire @Inject @Qualifier @Named的相同与不同
@Autowire @Inject相同点:同样可以注入对象,在属性域上面注入、在set方法或者其他需要注入的方法上面注入、在构造器上面注入不同点:@Autowire 有@required标签,允许对象为空@Inject没有@required标签,强制要求对象不能为空@Qualifier @Named相同点:都是作为限定器来使用,都可以使用标签或者bean的id来限定总结:这一章节主要介绍了@Aut原创 2016-02-16 21:25:12 · 2423 阅读 · 0 评论 -
从头认识Spring-2.4 基于java的标准注解装配-@Inject-限定器@Named
这一章节我们来讨论一下基于java的标准注解装配标签@Inject的限定器@Named。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_16;import javax.inject.Named;@Named("myCake")public class Cake { private Stri原创 2016-02-16 21:16:09 · 3164 阅读 · 0 评论 -
从头认识Spring-1.14 SpEl表达式(2)-嵌入Bean、Bean的属性和Bean的方法
这一章节我们来讨论一下使用SpEl表达式嵌入Bean、属性和方法。1.domain烤炉类:(不变)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_15;public class Oven { private String name = ""; @Override public String toString() {原创 2016-02-02 16:56:31 · 1882 阅读 · 0 评论 -
从头认识Spring-1.14 SpEl表达式(1)-简介与嵌入值
这一章节我们来讨论一下SpEl表达式的简介与嵌入值。1.SpEl表达式简介Spring Excpression Language (SpEL)语言支持在运行时操作和查询对象其实就是在运行的过程中操作相应的对象或者值。2.SpEl嵌入值(1)domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_14;p原创 2016-02-02 15:08:12 · 1572 阅读 · 0 评论 -
从头认识Spring-2.4 基于java的标准注解装配-@Inject(3)-通过构造器方法注入
这一章节我们来讨论一下基于java的标准注解装配标签@Inject是怎样通过通过构造器方法注入?在使用@Inject标签之前,我们需要在pom文件里面加入下面的代码: javax.inject javax.inject 1 上面是j2ee里面标准的inject标签依赖。1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_ne原创 2016-02-15 22:08:22 · 5459 阅读 · 0 评论 -
从头认识Spring-2.4 基于java的标准注解装配-@Inject(2)-通过set方法或者其他方法注入
这一章节我们来讨论一下基于java的标准注解装配标签@Inject是怎样通过通过set方法或者其他方法注入?在使用@Inject标签之前,我们需要在pom文件里面加入下面的代码: javax.inject javax.inject 1 上面是j2ee里面标准的inject标签依赖。1.domain蛋糕类:(不变)package com.raylee.my_new_spring原创 2016-02-15 22:04:13 · 2323 阅读 · 0 评论 -
从头认识Spring-2.4 基于java的标准注解装配-@Inject(1)-通过属性域注入
这一章节我们来讨论一下基于java的标准注解装配标签@Inject是怎样通过属性域注入?在使用@Inject标签之前,我们需要在pom文件里面加入下面的代码: javax.inject javax.inject 1 上面是j2ee里面标准的inject标签依赖。1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_sp原创 2016-02-15 21:58:11 · 3336 阅读 · 0 评论 -
从头认识Spring-1.13 注入properties与null
这一章节我们来简单讨论一下注入properties。1.domain厨师类:package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_13;import java.util.Iterator;import java.util.Map.Entry;import java.util.Properties;public原创 2016-02-01 22:24:01 · 2179 阅读 · 0 评论 -
从头认识Spring-1.15 对SpEl的值的操作(3)-逻辑运算以及条件表达式
这一章节我们来讨论一下对SpEl的逻辑运算以及条件表达式。1.domain烤炉类:(修改了toString方法,因为配置文件的表达式需要只返回跟Bean的id相同的name的属性值)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_18;public class Oven { private String name = "原创 2016-02-04 16:43:51 · 3061 阅读 · 0 评论 -
从头认识Spring-1.15 对SpEl的值的操作(2)-对比值
这一章节我们来讨论一下对SpEl的值的对比值。1.domain烤炉类:(增加了bigOrNot属性)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_18;public class Oven { private String name = ""; private double size = 0; private b原创 2016-02-04 15:54:05 · 2008 阅读 · 0 评论 -
从头认识Spring-2.7 自动检测Bean(1)-@Component @Repository @Service @Controller
这一章节我们来讨论一下自动检测Bean。1.domain厨师类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_19;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Compon原创 2016-02-18 11:28:21 · 1577 阅读 · 0 评论 -
从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展增加检查订单功能,以便记录并检测输入的参数
这一章节我们讨论一下扩展增加检查订单功能,以便记录并检测输入的参数。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_8;public class Cake { private String name = ""; public String getName() { return name原创 2016-02-27 08:57:12 · 2133 阅读 · 1 评论 -
从头认识Spring-3.7 简单的AOP日志实现(注解版)-增加检查订单功能
这一章节我们使用注解来实现检查订单功能1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_7;public class Cake { private String name = ""; public String getName() { return name; } public v原创 2016-02-26 08:40:31 · 2092 阅读 · 0 评论 -
从头认识Spring-3.6 简单的AOP日志实现(注解版)-需要记录方法的运行时间
这一章节我们把前面的第二个章节使用注解的形式来展示。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_6;public class Cake { private String name = ""; public String getName() { return name; } p原创 2016-02-22 22:53:17 · 3040 阅读 · 2 评论 -
从头认识Spring-3.2 简单的AOP日志实现-需要记录方法的运行时间
上一章节我们只是在做蛋糕的前后记录了一下日志,这个不够,我们需要记录做蛋糕需要的时间,这里就需要引入标签。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_2;public class Cake { private String name = ""; public String getNam原创 2016-02-21 23:05:18 · 2147 阅读 · 5 评论 -
从头认识Spring-3.5 简单的AOP日志实现(注解版)-某方法之前的前后记录日志
这一章节我们使用注解来简单实现AOP日志。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_5;public class Cake { private String name = ""; public String getName() { return name; } public原创 2016-02-22 22:45:36 · 2723 阅读 · 1 评论 -
从头认识Spring-3.4 简单的AOP日志实现-扩展增加检查订单功能,以便记录并检测输入的参数
这一章节我们再上一个章节的基础上加上一个检查订单功能1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_4;public class Cake { private String name = ""; public String getName() { return name;原创 2016-02-22 22:27:20 · 2038 阅读 · 1 评论 -
从头认识Spring-3.3 简单的AOP日志实现-增加检查订单功能
这一章节我们再上一个章节的基础上加上一个检查订单功能1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_3;public class Cake { private String name = ""; public String getName() { return name; } p原创 2016-02-21 23:30:02 · 2396 阅读 · 1 评论 -
从头认识Spring-3.1 简单的AOP日志实现-某方法之前的前后记录日志
这一章节我们引入简单的AOP日志实现。1.domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_1;public class Cake { private String name = ""; public String getName() { return name; } public v原创 2016-02-21 22:48:11 · 3487 阅读 · 2 评论 -
从头认识Spring-2.8 基于java注解的配置(基本没有xml)
我们这一章节来讨论一下基于java注解的配置(基本没有xml)。1.domain厨师类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_22;import org.springframework.beans.factory.annotation.Value;public class Chief { private原创 2016-02-19 22:33:38 · 2136 阅读 · 0 评论 -
从头认识Spring-2.7 自动检测Bean(3)-过滤器<context:exclude-filter/>
这一章节我们来讨论一下过滤器的使用。1.domainPerson接口:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_21;public interface Person {}拳击手类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_21;i原创 2016-02-18 14:44:09 · 3757 阅读 · 0 评论 -
从头认识Spring-2.7 自动检测Bean(2)-过滤器<context:include-filter/>
这一章节我们来讨论一下过滤器的使用。1.domainPerson接口:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_20;public interface Person {}拳击手类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_20;i原创 2016-02-18 14:38:45 · 3159 阅读 · 0 评论 -
从头认识Spring-1.12 注入Map
这一章节我们简单介绍一下注入Map。1.domain烤炉类:(基本没什么变化)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_12;public class Oven { private String name = ""; @Override public String toString() { return原创 2016-02-01 20:53:02 · 2797 阅读 · 0 评论 -
从头认识Spring-1.11 注入List或Set(这个例子比较体现代码复用)
这一章节我们来讨论一下注入List或Set。我们章节举的例子是不同的厨师使用不同个烤炉制作出不同的蛋糕。1.domain蛋糕类:(沿用前面章节的蛋糕类)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_11;public class Cake { private final int id = index++; pri原创 2016-02-01 16:09:08 · 1769 阅读 · 0 评论 -
从头认识Spring-2.3 注解装配-@autowired(5)-限定器@Qualifier(2)
这一章节我们来继续详细讨论一下配合@autowired一起使用的限定器@Qualifier。1.domain(重点)蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_12;import org.springframework.beans.factory.annotation.Qualifier;@Qualifie原创 2016-02-14 22:18:30 · 1734 阅读 · 0 评论 -
从头认识Spring-1.3 Spring的容器与Bean
这一章节我们来讨论一下Spring的容器与Bean。1.Spring的容器(1)BeanFactory这个是由org.springframework.beans.factory.BeanFactory来实现的(2)ApplicationContext这个是由org.springframework.context.ApplicationContext来实现的我们在一般的编程当中,都是以Applica原创 2016-01-29 15:23:40 · 1919 阅读 · 1 评论 -
从头认识Spring-2.2 默认自动装配
这一章节我们来讨论一下默认自动装配1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_4;public class Cake { private String name = ""; public String getName() { return name; } public原创 2016-02-12 09:21:07 · 2031 阅读 · 0 评论 -
从头认识Spring-2.1 自动装配(3)-constructor
这一章节我们来讨论一下自动装配的第三种方式-constructor1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_4;public class Cake { private String name = ""; public String getName() { r原创 2016-02-12 09:04:19 · 3228 阅读 · 0 评论 -
从头认识Spring-2.1 自动装配(2)-byType(1)
这一章节我们来讨论一下自动装配的第二种方式-byType1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_1;public class Cake { private String name = ""; public String getName() { return name;原创 2016-02-11 23:39:19 · 2152 阅读 · 0 评论 -
从头认识Spring-2.1 自动装配(2)-byType(2)
为了解决配置文件里面出现多个同类型的Bean而byType无法匹配的问题,引入了primary和autowire-candidate属性。1.primary由于所有bean默认的primary都是true,因此笔者认为这个属性没有太大的用处2.autowire-candidate这个属性的意思是,是否排除自己,如果排除了自己, 那么当使用byType的时候,这个Bean就不列入候选bean里面,看原创 2016-02-11 23:58:05 · 1808 阅读 · 0 评论 -
从头认识Spring-2.1 自动装配(1)-byName
这一章节我们来讨论一下自动装配的第一种方式-byName我们还是以例子来说明:1.domain蛋糕类:(为了方便,只保留name属性以示区别)package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_1;public class Cake { private String name = ""; public S原创 2016-02-11 23:31:36 · 1739 阅读 · 0 评论 -
从头认识Spring-1.2 什么是AOP?为什么需要面向切面编程?
这一章节我们来介绍一下什么是AOP?为什么需要面向切面编程?1.什么是AOP?(百度百科版)AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。比如我们最常见的就是日志记录了,举个例子,我们现在提供一个查询学生信息的服务,但是我们希望记录有谁进行了这个查询。如果按照传统的OOP的实现的话,那我们实现了一个查询原创 2016-01-29 14:14:43 · 8135 阅读 · 6 评论 -
从头认识Spring-1.1 什么是依赖注入?为什么需要依赖注入?
这一章节我们来讨论一下什么是依赖注入?为什么需要依赖注入?1.什么是依赖注入?笔者理解的是:对象的生成不再是通过显示的new,而且到spring容器里面取,对象的创建是使用注入这种形式2.为什么需要依赖注入?(1)解耦(2)易于测试我们以歌唱家唱歌这个为例子,在没有使用依赖注入情况下的代码:package com.raylee.my_new_spring.my_new_spring.ch01.to原创 2016-01-29 10:39:00 · 7921 阅读 · 5 评论 -
从头认识Spring-1.16 SpEl对集合的操作(2)-查询集合以及投影元素集合
这一章节我们来讨论一下查询集合以及投影元素集合。我们下面用一个例子说明上面的这两个部分。1.domain蛋糕类:(不变)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_21;public class Cake { private String name = ""; private double size = 0;原创 2016-02-05 15:07:13 · 3441 阅读 · 0 评论 -
从头认识Spring-1.16 SpEl对集合的操作(1)-建立集合以及访问集合的元素,以<util:list/>为例
这一章节我们来讨论一下如何建立集合以及访问集合的元素?1.建立集合?(1)domain蛋糕类:package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_20;public class Cake { private String name = ""; private double size = 0; public Str原创 2016-02-05 14:27:42 · 4058 阅读 · 0 评论 -
从头认识Spring-1.14 SpEl表达式(3)-SpEl表达式的两个坑:Bean的顺序与Bean的toString方法
这一章节我们来说一下SpEl表达式的坑,以及补充一下SpEl表达式操作类的方法与常量。1.domain厨师类:(新增一个朋友属性)package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_16;public class Chief { private String name = ""; private Oven oven;原创 2016-02-03 17:29:19 · 4605 阅读 · 1 评论