spring
请叫我大虾
这个作者很懒,什么都没留下…
展开
-
spring IOC容器设计理念与核心注解的使用
bean的扫描和启动bean的生命周期ico容器如何解决bean的循环依赖问题aop的源码解析事务源码解析原创 2021-08-18 13:34:32 · 186 阅读 · 0 评论 -
springboot:自动配置原理入门
1.引导加载自动配置类@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })p原创 2021-01-17 12:45:21 · 228 阅读 · 0 评论 -
《spring揭秘》读书笔记二
IoC Service Provider在这里是一个抽象出来的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式。它可以是一段代码,也可以是一组相关的类,甚至可以是比较通用的IoC框架或者IoC容器实现。Spring的IoC容器就是一个提供依赖注入服务的IoC Service Provider。 IoC Service Provider 的职责 1.业务对象的构建管理。 ...原创 2020-03-06 17:47:22 · 266 阅读 · 0 评论 -
《spring揭秘》读书笔记一
Spring框架所倡导的基于POJO(Plain Old Java Object,简单Java对象)的轻量级开发理念,就是从实际出发,立足于最基础的POJO(就好像我们的地球)。为了能够让这些基础的POJO构建出健壮而强大的应用, Spring框架就好像那包裹地球的大气层一样,为构筑应用的POJO提供了各种服务,进而创造了一套适宜用POJO进行轻量级开发的环境。...原创 2020-03-05 16:28:17 · 301 阅读 · 0 评论 -
spring31-2: 事务控制
基于xml的声明式事务控制原创 2020-03-01 22:06:55 · 221 阅读 · 0 评论 -
spring整合junit
原创 2020-02-19 15:46:55 · 196 阅读 · 0 评论 -
spring26-2: bean的作用域
原创 2020-02-16 20:56:51 · 197 阅读 · 0 评论 -
spring:《spring实战》读后感三
1.AOP术语:通知(Advice) 切面的工作被称为通知。同时通知还解决了何时执行这个工作。 Spring切面可以应用5种类型的通知: 前置通知(Before) : 在目标方法被调用之前调用通知功能; 后置通知(After) : 在目标方法完成之后调用通知, 此时不会关心方法的输出是什么; 返回通知(After-...原创 2020-01-16 19:32:54 · 281 阅读 · 0 评论 -
spring:《spring实战》读后感二
1. 装配(wiring) 创建应用对象之间协作关系的行为称为装配(wiring), 这也是依赖注入(DI)的本质.2. spring装配机制: 1). 在XML中进行显式配置。 2). 在Java中进行显式配置。public interface CompactDisc { void play();}import org.sp...原创 2020-01-06 17:42:40 · 284 阅读 · 1 评论 -
spring:《spring实战》读后感一
1.spring所做的一切都是为了简化java开发。2.为了降低java开发的复杂性,spring采取了以下4种关键策略: 1).基于POJO的轻量级和最小侵入性编程. 2).通过依赖注入和面向接口实现松耦合. 3).基于切面和惯例进行声明式编程. 4).通过切面和模板减少样板式代码.3. Spring通过应用上下文(Application Cont...原创 2019-12-31 16:15:10 · 418 阅读 · 0 评论 -
spring26-1: bean的实例方式
三种bean实例化方式: 默认构造,静态工厂,实例工厂。 默认构造: <bean id="" class=""></bean> 这种方式就是使用类的默认构造创建实例对象 静态工厂: 常用与spring整合其他框架(工具);静态工厂,用于生成实例对象,所有的方法必须是static. <bean ...原创 2019-05-08 22:24:49 · 259 阅读 · 0 评论 -
spring27: bean装配-基于xml
bean的作用域: scope=""<bean id="someService" class="com.atChina2.service.SomeServiceImpl" scope="singleton"/> 主要掌握 singleton, prototype即可 bean的声明周期 init-method,destroy-method配...原创 2019-05-11 09:45:43 · 195 阅读 · 0 评论 -
spring12:@Component衍生注解
@Component可以为任何类做注解,但spring提供了三个@Component衍生注解,功能同@Component一样。@Service service层@Repository dao层@Controller web层注解实现依赖注入:(给私有字段设置,也可以给setter方法设置) 普通值: @Value("值") 引用值 ...原创 2019-07-08 23:29:16 · 942 阅读 · 0 评论 -
spring18-3: 工厂bean代理-半自动
切面类import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;public class MyAspect implements MethodInterceptor{ @Override public Object invoke(Meth...原创 2019-07-12 23:34:05 · 207 阅读 · 0 评论 -
spring18-4: spring aop
切面import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;public class MyAspect implements MethodInterceptor{ @Override public Object invoke(Metho...原创 2019-07-13 00:15:38 · 197 阅读 · 0 评论 -
spring28: aspectJ--基于xml
AspectJ是一个基于java的aop框架。切入点表达式: execution() 用于描述方法 语法: execution(修饰符 返回值 包.类.方法名(参数) throws 异常)切面类:package com.atchina.d_spring_aop_xml;import org.aspectj.lang.JoinPoint;...原创 2019-07-13 11:04:44 · 215 阅读 · 0 评论 -
spring18-1:采用jdk的动态代理 proxy。
接口public interface UserService { void addUser(); void updateUser();}接口的实现类public class UserServiceImpl implements UserService { @Override public void addUser() { System.out.println("...原创 2019-07-11 22:59:57 · 203 阅读 · 0 评论 -
spring18-2:采用cglib字节码实现代理
没有接口,只有实现类。采用字节码增强框架cglib, 在运行时,创建目标类的子类,从而对目标类进行增强。实现类,没有实现任何接口public class UserServiceImpl { public void addUser() { System.out.println("cglib adduser..."); } public void updateUser() ...原创 2019-07-11 23:05:26 · 241 阅读 · 0 评论 -
spring29: JdbcTemplate详解
spring提供用于操作jdbc工具类,类似DBUtils, 依赖连接池DataSource(数据源)。通过apiimport org.apache.commons.dbcp.BasicDataSource;import org.springframework.jdbc.core.JdbcTemplate;public class TestApi { public st...原创 2019-07-18 22:22:38 · 256 阅读 · 0 评论 -
spring30: 事务
事务: 一组业务操作, 要么全部成功,要么全部不成功 特性: ACID 原子性, 一致性,隔离性,持久性。隔离问题: ①脏读:一个事务读到另一个事务没有提交的数据。 ②不可重复读: 一个事务读到另一个事务已经提交的数据。(update) ③虚读(幻读): 一个事务读到另一个事务已经提交的数据。(insert)PlatformT...原创 2019-07-21 15:26:28 · 205 阅读 · 0 评论 -
spring31-1: 事务-传播行为
传播行为:在两个事务之间如何共享事务。PROPAGATION_REQUIRED 支持当前事务,A如果有事务,B将使用该事务。 如果A没有事务,B将创建一个新的事务。PROPAGATION_SUPPORTS 支持当前事务,A如果有事务,B将使用该事务。 如果A没有事务,B将以非事务执行。(你有,我也有; 你没有,我也就没有)PROPAGATIO...原创 2019-07-22 23:01:41 · 234 阅读 · 0 评论 -
spring19:AspectJ的初步介绍
https://www.eclipse.org/aspectj/AspectJ的官网地址 aspectj是eclipse的开源项目。 AspectJ的通知类型: 1.前置通知 2. 后置通知 3. 环绕通知 4. 异常通知 5. 最终通知 AspectJ的切入点表达式: execution([modifiers-pattern] 访问权限...原创 2019-03-24 22:19:07 · 252 阅读 · 0 评论 -
mybaits二十:sql标签(抽取可重用的标签), include标签引用sql标签
<insert id="addEmps"> <foreach collection="list" item="emp" open="begin" close="end;"> insert into emptest( <include refid="insertColumn"></include> ...原创 2019-04-03 00:06:01 · 764 阅读 · 0 评论 -
xml的验证模式
xml的验证模式保证了XML文件的正确性, 常用的验证模式有两种: DTD 和XSD.DTD DTD ( Document Type Definition )即文挡类型定义,是一种 XML 约束模式语言,是 XML文件的验证机制,属于 XML 文件组成的一部分。 DTD 是一种保证 XML 文档格式正确的有效方法,可以通过比较 XML 文档和 DTD 文件来看文档是否符合规范...原创 2019-04-02 12:21:24 · 450 阅读 · 0 评论 -
mybaits二十七:spring, spring mvc,mybatis(ssm) 整合
配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat...原创 2019-04-07 02:36:34 · 216 阅读 · 0 评论 -
spring9: di依赖注入--集合属性完成赋值
package com.atChina.Test4;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;public class MyCollections { private String[] my...原创 2019-03-23 11:47:32 · 274 阅读 · 0 评论 -
spring8: di依赖注入--构造注入
package com.atChina.Test3;public class Student { private String name; private int age; private School school; public Student(){ System.out.println("无参数构造方法..."); } public Student(String...原创 2019-03-23 11:19:24 · 257 阅读 · 0 评论 -
spring五:获取容器中对象信息
// 获取容器中对象信息 @Test public void test2(){ String configLocation = "applicationContext.xml"; // 类路径的根目录 // 会创建对象 ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation); ...原创 2019-03-22 10:54:56 · 461 阅读 · 0 评论 -
spring四:路径
spring的xml配置文件放在不同的路径下,使用不同的context加载配置文件. 如下:@Test public void testClassPathService(){ String configLocation = "applicationContext.xml"; // 类路径的根目录 ApplicationContext ctx = new ClassPat...原创 2019-03-22 10:19:05 · 209 阅读 · 0 评论 -
spring20:Aspectj实现前置通知@Before
定义一个接口package com.atChina.Test;public interface SomeService { public void doSome();}定义接口的实现类package com.atChina.Test;public class SomeServiceImpl implements SomeService { @Override ...原创 2019-03-25 01:42:13 · 705 阅读 · 0 评论 -
spring18:aop介绍
aop是基于动态代理实现,使用的是jdk,cglib的动态代理。 aop最重要的是实现解耦合:业务功能和非业务功能的解耦合。 IoC:解决的是业务对象之间的耦合。例如Service和Dao对象之间的耦合。spring aop 使用纯java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。aspectJ是一个基于java语言的aop...原创 2019-03-24 21:57:10 · 265 阅读 · 0 评论 -
spring17:Bean的生命始末标签@PostConstruct,@PreDestroy和改变作用范围的@Scope标签
package com.atChina.Test8;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired...原创 2019-03-24 19:25:22 · 250 阅读 · 0 评论 -
spring:注解@Resource,实现引用类型的赋值
注解@Resource,根据byName赋值,找不到. 就会根据byType再找一次,赋值@Resource和@Autowired的区别: @Autowired来自spring框架, 而@Resource来自jdk.package com.atChina.Test6;import javax.annotation.Resource;import org.springframe...原创 2019-03-24 19:05:07 · 1016 阅读 · 0 评论 -
spring三: 装配bean( 在xml中进行显式配置, 在java中进行显式配置)
在java中进行显式配置package soundsystem2;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class CDPlayerConfig { ...原创 2019-03-17 20:42:35 · 443 阅读 · 0 评论 -
spring二:装配bean(自动装配)
创建应用对象之间协作关系的行为通常称为装配(wiring),这就是依赖注入(DI)的本质。 Spring提供了三种主要的装配机制: 1. 在xml中进行显式配置。 2. 在java中进行显式配置。 3. 隐式的bean发现机制和自动装配。 bean的装配:就是bean对象的创建,属性赋值,把创建好的对象赋值给程序的过程。自动化装置bean spring...原创 2019-03-16 22:36:54 · 297 阅读 · 0 评论 -
spring6:bean的生命始末方法
package com.atChina2.service;public class SomeServiceImpl implements SomeService { public SomeServiceImpl(){ System.out.println("SomeServiceImpl...无参构造函数.."); } @Override public void do...原创 2019-03-23 09:36:59 · 291 阅读 · 0 评论 -
spring7: di依赖注入--设值注入
di:就是依赖注入,给属性赋值。di注入的分类: 1.设值注入,调用java类中的set方法,给属性赋值。 2. 构造注入,调用java类中的有参数构造方法,创建对象的同时,给属性赋值。di的语法: 1. 基于xml的配置文件,在xml中使用标签和属性,完成属性的赋值。 2.基于注解的方式,使用注解创建对象,给属性赋值。简单...原创 2019-03-23 09:50:27 · 305 阅读 · 0 评论 -
spring10: 引用类型的自动注入
package com.atChina.Test5;public class Student { private String name; private int age; private School school; public Student(){ System.out.println("无参数构造方法..."); } public void setSch...原创 2019-03-23 18:33:21 · 438 阅读 · 0 评论 -
spring25:@Pointcut管理和定义切入点
切面类:package com.atChina.Test6;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterRe...原创 2019-03-28 00:21:25 · 695 阅读 · 0 评论 -
spring24:Aspectj实现最终通知@After
package com.atChina.Test5;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning...原创 2019-03-27 23:58:35 · 385 阅读 · 0 评论