-
spring基础知识课查看全部
-
spring中所有的对象都叫bean查看全部
-
#spring——Spring注入方式—设值注入# Spring是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为 常用注入方式:设值注入,构造注入 注意:参数的名称必须保持一致!!!! 设值注入(不需要显示地调用set方法,会根据xml的相关配置自动进行调用。) 利用属性或成员变量的set方法进行注入 其中property里面的name是需要注入参数的成员变量的名称,ref是注入参数引入bean的名称查看全部
-
#spring——单元测试Junit基本使用# 1、下载junit的jar并引入工程 2.创建UnitTestBase类,完成对Spring配置文件的加载、销毁 3.所有的单元测试类都继承自UnitTestBase,通过getBean方法获取想要的对象 4.子类(具体执行单元测试的类)加注解:@RunWith(BlockJUnit4ClassRunner.class) 5.单元测试方法注解:@Test 6.右键选择要执行的单元测试方法或者执行一个类的全部单元测试方法。查看全部
-
#spring——IOC及bean容器# 一 接口 接口:只能有声明不能有实现,支持多重继承(在java8中接口可以拥有方法体) 抽象类:即可以有包含实现的声明也可以有不包含实现的声明 类:声明必须包含实现 接口实现的变动不会影响其他各层的调用,对公共服务非常重要 二 IOC——控制反转 控制反转:控制权的转移,应用程序本身不负责依赖对象的创建与维护,而是由外部容器负责创建和维护。 依赖注入(DI):是一种实现方式,由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中 目的:创建对象并且组装对象之间的关系 三 Spring的bean配置 在IOC容器中将所有的控制对象称作bean,Spring对于bean的使用有两种方式:基于spring-ioc.xml的配置和注解。 注意xml中关于bean的配置程序段 <bean id="oneInterface(自定义)" class="配置的实现类"></bean> 使用示例: public void test(){ OneInterface interface=super.getBean("oneInterface");//获取bean,不需要new对象 interface.hello();//调用函数 }查看全部
-
java8中,接口也可以有方法体查看全部
-
bean 配置项查看全部
-
构造注入查看全部
-
查看Mooc spring源码:com.imooc.aop.aspectj.MoocAspect @Component @Aspect public class MoocAspect { @Pointcut("execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))") public void pointcut() {} @Pointcut("within(com.imooc.aop.aspectj.biz.*)") public void bizPointcut() {} @Before("pointcut()") public void before() { //... } @Before("pointcut() && args(arg)") public void beforeWithParam(String arg) {} @Before("pointcut() && @annotation(moocMethod)") public void beforeWithAnnotaion(MoocMethod moocMethod) {} @AfterReturning(pointcut="bizPointcut()", returning="returnValue") public void afterReturning(Object returnValue) {} @AfterThrowing(pointcut="pointcut()", throwing="e") public void afterThrowing(RuntimeException e) {} @After("pointcut()") public void after() {} @Around("pointcut()") public Object around(ProceedingJoinPoint pjp) throws Throwable { Object obj = pjp.proceed(); System.out.println("Around 2."); System.out.println("Around : " + obj); return obj; } }查看全部
-
1.Spring对AspectJ的支持 @AspectJ的风格类似纯java注解的普通java类 Spring可以使用AspectJ来做切入点解析 AOP的运行时仍旧是纯的SpringAOP,对AspectJ的编译器或者织入无依赖性 2.对@AspectJ支持可以使用XML或Java风格的配置(确保版本在1.6.8+) java: @Configuration @EnableAspectJAutoProxy public class AppConfig{} xml: <aop:aspectj-autoproxy/> aspect: 1、@AspectJ切面使用@AspectJ注解配置,拥有@Aspect的任何bean将被Spring自动识别并应用。 2、用@AspectJ注解的类可以有方法和字段,他们也可能包括切入点(pointcut),通知(Advice)和引入(introduction)声明 3、@AspectJ注解是不能够通过类路径自动检测发现的,所以需要配合使用@Conponent注释或者在XML中配置bean 4、一个类中的@AspectJ注解标始它为一个切面,并且将自己从自动代理中排除 5、AspectJ是编译期的AOP,检查代码并匹配连接点与切入点的代价是昂贵的。 一个好的切入点应该包括以下; ①选择特定类型的连接点,如:execution,get,set,call,handler ②确定连接点范围,如:within,withincode ③匹配上下文信息,如;this.targe,@annotation pointcut: ·一个切入点通过一个普通的方法定义来提供,并且切入点表达式使用@Pointcut注解,方法返回类型必须为void ·定义一个名为‘anyOldTransfer’,这个切入点将匹配任何名为“transfer”的方法的执行 @Prointcut("execution(* transfer(..))") private void anyOldTransfer() {} 组合pointcut ·切入点表达式可以通过&&、||和!进行组合,可以通过名字医用切入点表达式 @Po.. void a() {} @Po.. void b() {} @Pointcut("a() && b()") void c() {}查看全部
-
Proxying classes: CGLIB的代理对用户是透明的,需要注意: -final方法不能被通知,因为它们不能被覆盖 -不用把CGLIB添加到classpath中,在Spring3.2后,CGLIB被重新包装并包含在Spring核心的JAR(即基于CGLIB的AOP就像JDK动态代理一样“开箱即用”) 使用ProxyFactory 使用spring aop而不依赖spring IOC,大多数情况下使用IOC创建aop代理,推荐使用配置或注解实现。 使用“auto-proxy” ·可以自动代理选定的bean,这是建立在spring的"bean post processor"功能基础上(在加载bean的时候就可以修改) ·BeanNameAutoProxyCreator `.DefaultAdvisorAutoProxyCreator,当前IOC容器中自动应用,不用显示声明引用advisor的bean定义查看全部
-
ProxyFactoryBean创建Spring AOP代理的基本方法使用 定义一个foo的ProxyFactoryBean实例,引用foo这个对象看到的不是ProxyFactoryBean实例本身,而是ProxyFactoryBean实现里getObject()方法创建的对象。 getObject方法将创建一个AOP代理包装一个目标对象查看全部
-
Aware 介绍查看全部
-
将abean配置成名字为myAspect的切面查看全部
-
通知,在某个特定连接点执行的动作查看全部
举报
0/150
提交
取消