
spring基础知识
文章平均质量分 65
liyuan0323
万变不离其宗------基础为王。
展开
-
spring 依赖注入 非静态工厂注入和静态工厂注入
这两张方式不推荐使用,因为spring已经实现了这部分功能。 beanid="carFactory"class="com.modle.CarFactory">bean><!-- 1 --> beanid="car3"factory-bean="carFactory"factory-method="creat原创 2017-03-20 21:36:41 · 1175 阅读 · 0 评论 -
Spring AOP(三)CGLIB动态代理及JDK动态代理总结
这两个技术,有啥特点?特点就是都不好用,要是好用,可能spring aop就没有那么明显的优势了。缺点:(1) 目标类的所有方法都被织入了增强,很多时候,这个不是咱们要的。(2)这些都是通过硬编码的方式实现的。(3)每个都要手动创建代理,不方便。而且,jdk只对接口创建代理,cglib因为是通过创建子类代理来实现的,所以目标类(父类)的final方法是不能作为连接点的。...原创 2018-07-10 23:00:41 · 145 阅读 · 0 评论 -
Spring AOP(二)CGLIB动态代理实例
Cglib动态代理技术,采用底层的字节码技术,可以为一个类创建子类,并在子类中采用方法拦截技术拦截所有父类方法的调用,并植入增强。a、--CglibProxy 用于创建子类,并拦截父类所有方法的调用同时织入增强b、--CglibTask 测试业务类c、--CglibTest 测试--CglibProxyimport org.springframework.cglib.proxy.Enhancer;...原创 2018-07-10 22:48:25 · 469 阅读 · 0 评论 -
Spring AOP(一)AOP简介及JDK动态代理实例
1、什么是AOP面向切面编程。就是这样。2、AOP术语(1)连接点(Joinpoint) 程序执行的某个特定位置。比如类在初始化的前后,方法执行的前后。(2)切点(PointCut)一个类会有很多个链接点,但是如何定位到某个特定的连接点的逻辑或条件或方法我们称之为切点。就像sql语句的where条件。(3)增强/通知(Advice)织入到目标连接点的一段代码程序。(4)目标对象(Targe...原创 2018-07-09 23:05:58 · 271 阅读 · 0 评论 -
spring 方法注入 lookup方法注入
1、无状态bean 与有状态bean 无状态Bean bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。有状态Bean 有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例原创 2017-04-05 13:00:53 · 2077 阅读 · 1 评论 -
spring 方法注入之 方法以替换
在spring Ioc 容器里,允许用一个Bean 的方法去替换另一个Bean 的方法。publicclassForestTwoimplementsMethodReplacer { publicForestTwo() { super(); } publicObject reimplement(Object arg0,原创 2017-04-05 12:41:39 · 810 阅读 · 0 评论 -
spring 构造函数注入
构造函数注入,要求必须要有对应的带参构造函数,不要求有无参的构造函数方式 : 第一种方式 按类型匹配入参beanid="bear"class="com.modle.Bear"> constructor-argtype="string">value>熊大value>constructor-arg>原创 2017-03-17 13:45:45 · 1037 阅读 · 0 评论 -
spring 属性注入
1、属性注入主要通过setXxx()方法注入bean的属性值或依赖对象。灵活。最常用的方式2、属性注入要求bean 要提供一个默认的无参构造函数,并提供需要注入的属性的setXxx()方法。否则会报类似 java.lang.NoSuchMethodException: com.modle.World.() 异常(没有无参的构造函数) 因为, spring 先调用默认的无参构造函数,原创 2017-03-17 13:42:21 · 217 阅读 · 0 评论 -
spring Bean 的命名
1、bean 的名字即id 必须是唯一的2、bean的名字 可以用id 也可以用name.如果是id 必须已字母开头,后面可以使用特殊字符如数字,下划线,冒号,连字符等,不可以使用逗号 空格。name 来命名的的话没有字符限制。beanid="car"class="com.model.Car">bean name="car"class="com.model.原创 2017-03-16 13:21:44 · 620 阅读 · 0 评论 -
spring Bean的基本配置
一、Bean的命名1、bean 的名字即id 必须是唯一的2、必须已字母开头,可以使用特殊字符,不可以使用逗号 空格。3、bean的名字 可以用id 也可以用namebeanid="car"class="com.model.Car">bean name="car"class="com.model.Car">都可以通过getBean("id 或者n原创 2017-03-15 20:45:12 · 267 阅读 · 0 评论 -
spring Bean的集合属性
Spring 对set、list、map、Properties基本集合类型提供了专门的配置元素标签。其中Properties可以看作是Map的特例,Map的key和value都可以是对象,但Properties的KEY和value都只能是字符串。 beanid="world4"class="com.modle.World">原创 2017-03-22 23:13:56 · 276 阅读 · 0 评论 -
spring 内部Bean
如果一个 Car Bean只被另一world Bean引用。那么可以将Car Bean 配置成World Bean的内部Bean。这样内部bean没有名称,不能被其他Bean使用,只能在声明处为外部Bean 注入实例。另外,即使内部Bean 有名字和name、scope 属性 ,也会被忽略,因为scope 默认为prototype类型(作用域)。实例:原创 2017-03-20 21:41:31 · 312 阅读 · 0 评论 -
spring 引用其他Bean
spring ioc 容器中定义的Bean 可以相互引用,Ioc 充当媒介的作用。比如创建一个一个word 类,将Car,People 等作为他的属性。publicclassWorld { privateCarcar; privatePeoplepeople; privateStringgood;原创 2017-03-20 21:38:44 · 478 阅读 · 0 评论 -
Spring AOP(四)基于@Aspect
一、简述--是什么1、spring 使用jdk动态代理或cglib动态代理,没错是或。2、 Spring提供了两种方式来生成代理对象: JDKProxy和Cglib,具体使用哪种方式生成由AopProxyFactory根据AdvisedSupport对象的配置来决定。默认的策略是如果目标类是接口,则使用JDK动态代理技术,否则使用Cglib来生成代理。当然,可以通过配置指定代理方式。<...原创 2018-07-23 23:41:27 · 471 阅读 · 0 评论