SpringIOC相关注解—————————————————-
XML+注解(自定义类和属性用注解,所有第三方都只能用XML文件配置)
<context:component-scan base-package=”com.server”/> 在XMl文件中配置,声明扫描哪个包下面的注解,规范:越精准越好
@Compent 声明当前类存入IOC容器,id为类名首字母小写,也可指定value值定义id 子注解: @Repository 与Compent作用相同,仅标识作用 @Service 与Compent作用相同,仅标识作用 @Controller 在SpringMVC中规定只识别Controller注解,其他用途与Compent作用相同,仅标识作用@Value 为当前非引用类型赋值@Autowired 为当前引用类型赋值 @Qualifier 当有多个同类型Bean时,该注解指定Autowired选择装配哪个Bean@Resource 相当于@Autowired加@Qualifi ...
PlatformTransationManager 接口DateSourceTransationManager JDBC的事务实现(Mybatis同样用它)
事务管理器:选择合适的事务实现,添加到IOC容器中, 配置: (导入对应的依赖) spring-context spring-tx spring-jdbc spring-aop spring-aspects 1.将对应的事务实现添加到IOC容器中,例如JDBC或Mybatis的事务实现:将DateSourceTransationManager添加到IOC容器中 2.声明事务注解生效 @EnableTransactionManagement 使用: 在需要添加事务的类上添加 @Transactional 注解@Transactional: 在类上或方法上添加该注解表示为该类或方法添加事务。 特殊: readOnly=”” 默认为false表示非只读,表示方法或类中sql非只读,true表示只读 time ...
SpringIOC相关配置:
<bean id="" class=""></bean> id为唯一标识,class用于指定类
给属性赋值:name为set方法去掉set后小写首字母的名称,value是给非引用类型赋值,ref是给引用类型赋值
(xml配置文件采用调用set方法赋值,所以要求必须有set方法)
<property name="" value=""/>
<property name="" value=""/>
例1:
<bean id="userService" class="com.server.UserService">
<property name="name" value="张三"/>
<property name="age ...
void assertEquals([String message],expectedvalue,actual value)断言两个值相等。值类型可以是 int,short, long,byte, char,Object,第一个参数是一个可选字符串消息
void assertTrue([String messagel,boolean condition)断言一个条件为真
void assertFalse([String message],booleancondition)断言一个条件为假
void assertNotNull([String messagel,java.lang.Object object)断言一个对象不为空(null)
void assertNull([String message],java.lang.Object object)断言一个对象为空(null)
void assertSame([String message],java.lang.Objectexpected,java.lang.Object actual)]断言两个对象引用相同的对象
void ass ...
BeanFactory(接口) 组件工厂springIOC的超接口,规定了容器最基本的创建组件,获取组件ApplicationContext(接口) 容器工厂,继承BeanFactory扩展了组件管理的方法
使用springIOC需要导入依赖: 导入Spring Context,进行依赖传递即可(Spring Context Sprint Beans Spring core Spring expression)
创建并使用SpringIOC容器: 方案一: ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“Spring.xml”); 方案二: ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(); applicationContext.setConfigLocation(“Spring ...
代理技术:(了解即可) jdk:需要有接口 cglib:无需接口
专业名词: 横切关注点:aop负责的非核心代码管理 通知(增强):提取要插入的非核心代码 前置通知:在核心代码前切入 返回通知:在核心代码返回时切入 异常通知:在核心代码异常时切入 后置通知:在核心代码结束时切入 目标:要被动态代理的对象 连接点:目标对象可能被织入的方法 织入:配置文件的编写过程 切入点:被选中的连接点 切面:切入点+通知(增强)组成的 代理:被增强后的目标对象
@Aspect 声明切面类注解 @Before(“切入点表达式”) 声明该方法为前置通知(增强) @AfterReturning(“切入点表达式”) 声明该方法为返回通知(增强) @AfterThrowing(“切入点表达式”) 声明该方法为异常通知(增强) @After(“切入点表达式”) 声明该方法为后置通知(增强) @Around() 环绕通知:前置通知,返回通知,异常通知,后置通知 四合一 ...
BeanFactory 是springIOC容器标准化超接口ClassPathXmlApplicationContext 通过读取类路径下的xml格式的配置文件创建IOC容器对象FileSystemApplicationContext 通过文件系统路径读取的xml格式的配置文件创建IOC容器对象AnnotationConfigApplicationContext 通过读取java配置类创建IOC容器对象WebApplicationContext 专门为web应用准备,基于web环境创建IOC容器对象,并将对象引入存入ServletContext域中
组件管理的配置方式: 1.xml文件配置 2.注解配置: 3.配置类配置(完全注解)
Core Container(核心容器)由各种模块构成
Beans模块 提供BeanFactory,是工厂模式都经典体现,Spring将管理对象称为beanCore 核心模块:提供了 Spring 框架的基本组成部分,包括 IoC 和 D1 功能。Context 上下文模块:建立在核心和 Beans 模块的基础之上,它是访问定义和 ...
@Test 测试注解,标记一个方法可以作为一个测试用例。
@Before Before注解表示,该方法必须在类中的每个测试之前执行,以便执行某些必要的先决条件。
@BeforeClassBeforeClass 注解指出这是附着在静态方法必须执行一次并在类的所有测试之前,这种情况一般用于测试计算、共享配制方法(如数据库连接)。
@AfterAfter 注释表示,该方法在每项测试后执行(如执行每一个测试后重置某些变量,删除临时变量等)。
@AfterClass当需要执行所有测试在 Junit 测试用例类后执行,AlterClass 注解可以使用以清理一些资源(如数据库连接),注意:方法必须为静态方法。
@lgnore当想暂时禁用特定的测试执行可以使用这个注解,每个被注解为@lgnore 的方法将不再执行
@Runwith@Runwith就是放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器。(引擎)
@Parameters用于使用参数化功能。
@SuiteClasses用于套件测试
@ContextConfiguration指定Spring配置文件
AspectJ中通知类型before 前置通知afterReturning 后置通知around 环绕通知after Throwing 异常通知after 最终通知
ProceedingJoinPoint JoinPoint的子接口环绕通知会注入ProceedingJoinPoint对象主要新增调用目标方法前置通知,后置通知会注入JoinPoint对象
JoinPoing下常用APIgetTarget 获取目标对象getSignature().getname() 获取目标方法名getArgs() 获取目标方法参数列表getThis() 获取代理对象
Execution表达式基本语法execution(<修饰符模式><返回类型模式><方法名模式>(<参数模式><异常模式>))修饰符和异常为可选
execution(public * com.service.userservice...(..))
注解方式
@Before 前置通知@AfterReturning 后置通知@around 环绕通知@After 最 ...