首页 > 其他分享 >Spring 6.0官方文档示例(24): replace-method的用法

Spring 6.0官方文档示例(24): replace-method的用法

时间:2023-11-10 12:34:01浏览次数:31  
标签:24 String 示例 MyValueCalculator Spring edu import public cn


一、原始bean定义

package cn.edu.tju.study.service.anno.domain;

public class MyValueCalculator {
    public String computeValue(String input) {
        return "you inputted: " + input;
    }
    // some other methods...
}

二、replace bean定义

package cn.edu.tju.study.service.anno.domain;

import org.springframework.beans.factory.support.MethodReplacer;

import java.lang.reflect.Method;
import java.util.Locale;

public class ReplacementComputeValue implements MethodReplacer {
    public Object reimplement(Object o, Method m, Object[] args) throws Throwable {
        String input = (String) args[0];
        return input.toUpperCase();
    }
}

三、配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:c="http://www.springframework.org/schema/c"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
  https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="myValueCalculator" class="cn.edu.tju.study.service.anno.domain.MyValueCalculator">
        <!-- arbitrary method replacement -->
        <replaced-method name="computeValue" replacer="replacementComputeValue">
            <arg-type>String</arg-type>
        </replaced-method>
    </bean>
    <bean id="replacementComputeValue" class="cn.edu.tju.study.service.anno.domain.ReplacementComputeValue"/>




</beans>

四、主类:

package cn.edu.tju;

import cn.edu.tju.study.service.anno.domain.MyValueCalculator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Start17 {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new
                ClassPathXmlApplicationContext("beans17.xml");
        MyValueCalculator result = applicationContext.getBean("myValueCalculator", MyValueCalculator.class);
        System.out.println(result.computeValue("hello"));

    }
}

五、执行结果:

Spring 6.0官方文档示例(24): replace-method的用法_xml


标签:24,String,示例,MyValueCalculator,Spring,edu,import,public,cn
From: https://blog.51cto.com/amadeusliu/8295702

相关文章

  • SpringBoot复习:(57)ServletRequestListener
    packagecn.edu.tju.confiig;importorg.springframework.context.annotation.Configuration;importjavax.servlet.ServletRequestEvent;importjavax.servlet.ServletRequestListener;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServlet......
  • Spring6.0官方文档示例:(25)@RequestScope注解
    packagecn.edu.tju.controller.listener;importorg.springframework.stereotype.Component;importorg.springframework.web.context.annotation.RequestScope;importjava.util.Date;@Component@RequestScope//@Scope(value="request",proxyMode=Sco......
  • Spring6.0官方文档示例:(28)多种方式添加BeanPostProcessor
    一、定义三个BeanPostProcessorpackagecn.edu.pku;importorg.springframework.beans.BeansException;importorg.springframework.beans.factory.config.BeanPostProcessor;importorg.springframework.stereotype.Component;@ComponentpublicclassMyScannedBeanPostPr......
  • spring复习:(57)PropertyOverrideConfigurer用法及工作原理
    一、属性配置文件dataSource.url=jdbc:mysql://xxx.xxx.xxx.xxx/testdataSource.username=rootdataSource.password=xxxxxxdataSource.driverClassName=com.mysql.jdbc.Driver#dataSource.type=com.alibaba.druid.pool.DruidDataSource二、spring配置文件<?xmlversion="1.0&quo......
  • Spring复习:(56)PropertySourcePlaceholderConfigurer的工作原理
    PropertySourcePlaceholderConfigurer的用途:通过配置文件(比如.properties文件)给bean设置属性,替代属性占位符示例:属性配置文件spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx/testspring.datasource.username=rootspring.datasource.password=xxxxxxspring.datasource.dri......
  • 【Spring】一次性打包学透 Spring | 阿Q送书第五期
    文章目录如何竭尽可能确保大家学透Spring1.内容全面且细致2.主题实用且本土化3.案例系统且完善4.知识有趣且深刻关于作者丁雪丰业内专家推图书热卖留言提前获赠书不知从何时开始,Spring这个词开始频繁地出现在Java服务端开发者的日常工作中,很多Java开发者从工作的第一天......
  • 16、Flink 的table api与sql之连接外部系统: 读写外部系统的连接器和格式以及FileSyst
    文章目录Flink系列文章一、Table&SQLConnectors1、概述2、支持的外部连接3、使用示例:kafka4、Transformtableconnector/formatresources5、SchemaMapping6、Metadata7、PrimaryKey8、TimeAttributes9、ProctimeAttributes10、RowtimeAttributes11、完整示例1)、建表2)、......
  • 2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续
    2023-08-24:请用go语言编写。给定一个长度为n的数组arr,现在你有一次机会,将其中连续的K个数全修改成任意一个值,请你计算如何修改可以使修改后的数列的最长不下降子序列最长。请输出这个最长的长度。最长不下降子序列:子序列中的每个数不小于在它之前的数。1<=k,n<=10^5,1<=a......
  • SpringBoot部署的jar包瘦身
    pom文件打包插件更换参考连接:https://www.jb51.net/program/293676eog.htm参考连接:https://blog.csdn.net/meng_9543/article/details/121329834<build><finalName>xxx-xxx</finalName><plugins><plugin>......
  • Spring BeanUtils.copyProperties简化写法
    代码importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importorg.springframework.beans.BeanUtils;importorg.springframework.beans.BeansException;importorg.springframework.util.StopWatch;publicclassBeanUtils2{......