很拗口的题目,也不知道该怎么称呼这个问题
就是有一个应用类本身有一些自己的属性是通过依赖注入的,其中有一个方法,方法里面又定义了一个回调方法需要用到成员变量,如果直接配置aop通过代理得到这个对象的引用,那么虽然有方法,但是其成员属性是没有通过依赖注入的,也就是为null,所有在执行具体方法时,会报空指针异常。
不知道是不是spring有什么可以配置的属性,自己用了个笨方法,先get一个代理类,再get一个应用类,其中代理类有一个init方法,参数就是应用类,目的是将从容器得到的配置好的应用类的成员变量的引用传给代理类,代码如下:
ApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
IBlobReader br=(IBlobReader) ac.getBean("myService");
IBlobReader br2=(IBlobReader) ac.getBean("blobreader");
br.init(br2);
之后再执行br的方法就可以实现拦截了,好像有点麻烦和多余,不过功能是实现了,才学spring不久,不知道这个问题有没有什么简单的解决方法
分享到:
相关推荐
标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...
这个接口允许我们在配置文件中定义变量,然后在代码中动态解析它们。 现在,我们转向AOP部分。AOP是Spring提供的一种强大的功能,用于在不修改原始代码的情况下添加额外的行为。常见的AOP注解包括`@Before`,`@...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...
3. **类型安全的属性注入**:通过@Value注解,开发者可以直接在bean中注入属性值,而这些值可以从属性文件中读取,提供了类型安全的检查。 4. **简化AOP**:Spring 3.1.0对AspectJ的集成进行了优化,使切面编程更加...
使用对象或类的属性值进行注入 4.3.5.2.使用字段值进行注入 4.3.5.3.使用方法的返回值进行注入 4.3.6.IFactoryObject接口的其它实现 4.3.6.1.Log4Net 4.3.7.使用depends-on 4.3.8.自动装配协作对象 4.3.9.检查依赖项...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...
2. `Field`类:代表类的成员变量,可以用来获取和设置类的属性值,包括私有属性。 3. `Method`类:代表类的方法,可以用来调用方法,包括私有方法。 4. `Constructor`类:代表类的构造器,用于在运行时创建类的新...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...
在Spring框架中,面试常涉及的关键知识点包括Spring的IoC(控制反转)、依赖注入、Bean的生命周期、AOP(面向切面编程)、事务管理、设计模式以及特定的类和注解如`@Service`、`@Repository`和`ThreadLocal`的使用。...
3. **外部配置**:可以通过properties或YAML文件指定配置属性,也可以通过环境变量、命令行参数等方式指定配置。 #### 六、Spring Cloud Spring Cloud是一套微服务解决方案工具集,基于Spring Boot实现。它为...
8. `@Value`:可以从属性文件或其他源中注入值,如环境变量或系统属性。 9. `@EnableAspectJAutoProxy`:启用基于AspectJ的AOP代理,支持切面编程。 在这个"spring-demo10-注解-IOC"的示例中,我们可以期待看到...
- 在"beans"包中,`org.springframework.beans.factory.config`包下的`PropertyPlaceholderConfigurer`类用于处理占位符替换,实现环境变量或属性文件的值注入到Bean的属性中。 3. **Bean的生命周期管理** - ...
3. **BeanFactory**:加载XML配置文件中的属性值到BeanFactory中。这涉及到以下步骤: - 创建BeanFactory,可以自定义是否允许覆盖同名的Bean定义,以及处理循环依赖。 - 初始化各种组件,如DocumentReader、...
Spring 3.0 引入了配置类和注解工厂方法,进一步增强了基于注解的组件管理。配置类允许将配置信息直接写在类上,而注解工厂方法则提供了创建对象的另一种方式。同时,@Value 注解现在可以用来注入配置值,通过 `#{....
其实现类是apache的BasicDataSource,第11~25行定义了Hibernate的会话工厂,会话工厂类用Spring提供的LocalSessionFactoryBean维护,它注入了数据源和资源映射文件,此外还通过一些键值对设置了Hibernate所需的属性...
Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...
- **动态代理**:Java中的动态代理机制基于反射,可以创建一个代理类来拦截并处理方法调用,例如用于AOP(面向切面编程)。 - **插件系统**:在运行时加载未知的插件类,实现模块化和扩展性。 - **测试工具**:单元...
- **Spring AOP实现**:Spring框架通过代理模式实现了AOP,允许开发者通过配置声明式事务管理、日志记录等功能。 #### 七、持久层支持 - **JDBC模板**:Spring提供了JdbcTemplate类,简化了JDBC编程模型,减少了...