通过MethodInvokingFactoryBean工厂Bean,可将目标方法的返回值注入为Bean的属性值。这个工厂Bean用来获取指定 方法的返回值,该方法既可以是静态方法,也可以是实例方法;这个值既可以被注入到指定Bean实例的指定属性,也可以直接定义成Bean实例
public class Person { //儿子,该属性是son类的一个实例 private Son son; private String age; public Son getSon() { return son; } public void setSon(Son son) { this.son = son; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
public class Son { private String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
public class ValueGenerator { public String getValue(){ return "2"; } public static String getStaticValue(){ return "9"; } }
<bean id="valueGenerator" class="application.ValueGenerator"></bean> <!-- 注入方法的返回值 --> <bean id="son3" class="application.Son"> <property name="age"> <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetObject" ref="valueGenerator"> </property> <property name="targetMethod"> <value>getValue</value> </property> </bean> </property> </bean>
public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("config/applicationContext.xml"); Son son3=(Son)context.getBean("son3"); System.out.println(son3.getAge()); } 结果:2
相关推荐
@Bean 可以使用在方法上,以便将该方法的返回值转换为一个 Spring bean。 在 Spring Boot 中,以上几种注入方法都是非常重要的,它们可以帮助我们在编写 Spring Boot 应用程序时,使代码更加简洁、灵活和可维护。
Method返回值的注入则通过`MethodInvokingFactoryBean`来实现,它能够调用指定的目标Bean的方法,并将方法的返回值注入到另一个Bean的属性中。在XML配置中,需要指定`targetObject`和`targetMethod`属性来确定目标...
5. `@Configuration`和`@Bean`:在Spring 3.0引入的基于注解的配置中,`@Configuration`类可以替代XML配置文件,`@Bean`注解方法表示该方法的返回值将作为bean定义,Spring会调用该方法来创建bean实例。 6. `@Scope...
在Spring 3.0.2中,依赖注入得到了进一步优化,支持了更多类型的注入方式,如构造器注入、setter注入和基于注解的注入。 其次,Spring 3.0.2引入了全面的注解支持,这极大地简化了配置。例如,@Autowired注解用于...
- 包括属性值注入、字段注入以及方法返回值注入等多种方式。 - **BeanPostProcessor与BeanFactoryPostProcessor** - 这两个接口可以在Bean的生命周期中进行定制化的操作,比如属性值的转换、依赖关系的调整等。 ...
在Service层或Controller层,通过@Autowired注解注入Mapper接口,就可以直接调用其提供的方法进行数据库操作。例如,`insert`、`update`、`delete`和`selectById`等。 7. **扩展通用Mapper**: 如果有特殊需求,...
每个类和接口的描述、方法签名、参数以及返回值都会详细列出,有助于理解其功能和使用场景。 其次,Spring入门书籍的PDF提供了系统化的学习路径,它通常会涵盖Spring的基本概念、安装配置、实战应用等方面。书中...
4. **REST支持**:Spring 3.0增加了对RESTful服务的支持,包括`@RequestMapping`注解用于映射HTTP请求,`@ResponseBody`将方法返回值直接转换为HTTP响应体。 5. **JMX支持**:提供了更好的Java Management ...
Bean:写方法上,将方法的返回值 Configuration:标记配置类 ComponentScan包扫描 PropertySource:加载配置文件 Import:导入其他配置类 AOP 概念:面向切面编程,在不改变源码的情况下对方法进行增强,抽取横...
最后,业务逻辑层(Service)和控制层(Controller)可以通过Spring的依赖注入获取到Mapper接口,然后调用对应的方法进行数据库操作。例如: ```java // UserService.java @Service public class UserService { @...
1. **依赖注入(Dependency Injection, DI)**:Spring4继续强化了依赖注入的核心特性,使得对象之间的依赖关系通过配置文件或注解来管理,降低了代码的耦合度。开发者可以使用@Autowired注解自动装配依赖,或者使用...
8. **JDBC增强**:Spring4.0的JdbcTemplate和NamedParameterJdbcTemplate进一步简化了数据库操作,提供了模板方法模式,减少SQL注入风险。 9. **Spring Data**:Spring4.0加强了对各种数据存储的支持,Spring Data...
`@AfterReturning`注解的方法会在目标方法正常执行完毕并返回后调用,可以访问到返回值。 ```java @Aspect public class ReturnLoggingAspect { @AfterReturning(pointcut = "execution(* com.example.service....
9. `@ResponseBody`:将方法返回值直接写入HTTP响应体,常与RESTful API结合使用。 10. `@PathVariable`:用于获取URL路径变量的值,常用于RESTful接口。 11. `@RequestParam`:用于获取请求参数,可以是查询参数...
此外,可以利用`@ResponseBody`将方法返回值直接转化为HTTP响应体。 MyBatis是一个持久层框架,它简化了数据库操作,将SQL语句与Java代码紧密集成。在没有XML配置的情况下,MyBatis的`@Mapper`注解可以用于标记...
`@Configuration`类表示这是一个配置类,`@Bean`注解方法表示该方法的返回值将作为一个Bean注册到Spring容器。 ```java @Configuration public class AppConfig { @Bean public HelloWorldService ...
同时,可以结合Spring的`@Autowired`和`@Qualifier`注解来处理多bean注入的情况。 通过这样的方式,Spring、TestNG和Mockito共同构建了一套完整的单元测试解决方案,能够有效地测试Spring应用中的各个组件,确保...
提供的javadoc-api文件包含了Spring框架API的详细文档,开发者可以通过查阅这些文档了解每个类和方法的用途、参数和返回值,方便代码编写和调试。 10. **Spring Boot** 虽然不在4.3.30.RELEASE的范围内,但值得一...