Spring实战之获取方法返回值操作示例

本文实例讲述了Spring实战之获取方法返回值操作。分享给大家供大家参考,具体如下:

一 配置文件

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:util="http://www.springframework.org/schema/util"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
   http://www.springframework.org/schema/util
   http://www.springframework.org/schema/util/spring-util-4.0.xsd">
   <!-- 下面配置相当于如下Java代码:
   JFrame win = new JFrame("我的窗口");
   win.setVisible(true); -->
   <bean id="win" class="javax.swing.JFrame">
      <constructor-arg value="我的窗口" type="java.lang.String"/>
      <property name="visible" value="true"/>
   </bean>
   <!-- 下面配置相当于如下Java代码:
   JTextArea jta = JTextArea(7, 40); -->
   <bean id="jta" class="javax.swing.JTextArea">
      <constructor-arg value="7" type="int"/>
      <constructor-arg value="40" type="int"/>
   </bean>
   <!-- 使用MethodInvokingFactoryBean驱动Spring调用普通方法
   下面配置相当于如下Java代码:
   win.add(new JScrollPane(jta)); -->
   <bean class=
   "org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="win"/>
      <property name="targetMethod" value="add"/>
      <property name="arguments">
        <list>
           <bean class="javax.swing.JScrollPane">
              <constructor-arg ref="jta"/>
           </bean>
        </list>
      </property>
   </bean>
   <!-- 下面配置相当于如下Java代码:
   JPanel jp = new JPanel(); -->
   <bean id="jp" class="javax.swing.JPanel"/>
   <!-- 使用MethodInvokingFactoryBean驱动Spring调用普通方法
   下面配置相当于如下Java代码:
   win.add(jp , BorderLayout.SOUTH); -->
   <bean class=
      "org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="win"/>
      <property name="targetMethod" value="add"/>
      <property name="arguments">
        <list>
           <ref bean="jp"/>
           <util:constant static-field="java.awt.BorderLayout.SOUTH"/>
        </list>
      </property>
   </bean>
   <!-- 下面配置相当于如下Java代码:
   JButton jb1 = new JButton("确定"); -->
   <bean id="jb1" class="javax.swing.JButton">
      <constructor-arg value="确定" type="java.lang.String"/>
   </bean>
   <!-- 使用MethodInvokingFactoryBean驱动Spring调用普通方法
   下面配置相当于如下Java代码:
   jp.add(jb1); -->
   <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="jp"/>
      <property name="targetMethod" value="add"/>
      <property name="arguments">
        <list>
           <ref bean="jb1"/>
        </list>
      </property>
   </bean>
   <!-- 下面配置相当于如下Java代码:
   JButton jb2 = new JButton("取消"); -->
   <bean id="jb2" class="javax.swing.JButton">
      <constructor-arg value="取消" type="java.lang.String"/>
   </bean>
   <!-- 使用MethodInvokingFactoryBean驱动Spring调用普通方法
   下面配置相当于如下Java代码:
   jp.add(jb2); -->
   <bean class=
      "org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="jp"/>
      <property name="targetMethod" value="add"/>
      <property name="arguments">
        <list>
           <ref bean="jb2"/>
        </list>
      </property>
   </bean>
   <!-- 使用MethodInvokingFactoryBean驱动Spring调用普通方法
   下面配置相当于如下Java代码:
   win.pack(); -->
   <bean class=
      "org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="win"/>
      <property name="targetMethod" value="pack"/>
   </bean>
</beans>

二 测试类

package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class SpringTest
{
  public static void main(String[] args)
  {
    ApplicationContext ctx =
        new ClassPathXmlApplicationContext("beans.xml");
  }
}

三 测试结果

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • SpringMVC 方法四种类型返回值总结(你用过几种)

    SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类型的返回值,看看有没有 get 到你的知识盲点? 1. ModelAndView 以前前后端不分的情况下,ModelAndView 应该是最最常见的返回值类型了,现在前后端分离后,后端都是以返回 JSON 数据为主了.后端返回 ModelAndView 这个比较容易理解,开发者可以在 ModelAn

  • Java中Spring获取bean方法小结

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢? Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制.BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.ApplicationContext)建立在BeanFactory基础之上,提供

  • 详解springmvc之json数据交互controller方法返回值为简单类型

    当controller方法的返回值为简单类型比如String时,该如何与json交互呢? 使用@RequestBody 比如代码如下: @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public String ceshijson(@RequestBody String channelId) throws IOException{

  • 监听器获取Spring配置文件的方法

    我们在做项目的时候,会用到监听器去获取Spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法,也就是说我们需要在监听器里获取Spring中配置的相应的bean.先把监听器创建出来: 1. 创建InitDataListener 创建一个监听器InitDataListener继承ServletContextListener:

  • 详解利用SpringMVC拦截器控制Controller返回值

    背景:需求是在Controller中方法没有实现时,返回模拟结果.主要用于项目初期前台跟后台的交互,Web项目就是在前台发出请求然后后台响应并返回结果.本示例利用拦截器和注解实现跳过执行方法直接返回定义结构的功能. 通过定义一个StringResult注解,在访问方法的时候返回StringResult中的内容.通过Debug注解来定义方法是否要返回StringResult中的内容. Debug默认为TRUE package com.tiamaes.dep.annotation; import j

  • SpringMVC Controller 返回值的可选类型详解

    spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void. ModelAndView @RequestMapping("/hello") public ModelAndView helloWorld() { String message = "Hello World, Spring 3.x!"; return new ModelAndView("hello"

  • Spring 中优雅的获取泛型信息的方法

    简介 Spring 源码是个大宝库,我们能遇到的大部分工具在源码里都能找到,所以笔者开源的 mica 完全基于 Spring 进行基础增强,不重复造轮子.今天我要分享的是在 Spring 中优雅的获取泛型. 获取泛型 自己解析 我们之前的处理方式,代码来源 vjtools(江南白衣). /** * 通过反射, 获得Class定义中声明的父类的泛型参数的类型. * * 注意泛型必须定义在父类处. 这是唯一可以通过反射从泛型获得Class实例的地方. * * 如无法找到, 返回Object.clas

  • Spring MVC Controller返回值及异常的统一处理方法

    旧的设计方案 开发api的时候,需要先定义好接口的数据响应结果.如下是一个很简单直接的Controller实现方法及响应结果定义. @RestController @RequestMapping("/users") public class UserController { @Inject private UserService userService; @GetRequest("/{userId:\\d+}") public ResponseBean signin

  • 详解SpringCloud Zuul过滤器返回值拦截

    Zuul作为网关服务,是其他各服务对外中转站,通过Zuul进行请求转发.这就涉及到部分数据是不能原封返回的,比如服务之间通信的凭证,用户的加密信息等等. 举个例子,用户服务提供一个登录接口,用户名密码正确后返回一个Token,此Token作为用户服务的通行证,那么用户登录成功后返回的Token就需要进行加密或者防止篡改处理.在到达用户服务其他接口前,就需要对Token进行校验,非法的Token就不需要转发到用户服务中了,直接在网关层返回信息即可. 要修改服务返回的信息,需要使用的是Zuul的过滤

  • SpringBoot异步调用方法并接收返回值

    项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运行这一个过程的时间是计算所有指标的时间之和.比如: 方法A:计算指标x,指标y,指标z的值,其中计算指标x需要1s,计算指标y需要2s,指标z需要3s.最终执行完方法A就是5s. 现在用异步的方式优化一下 方法A异步调用方法B,方法C,方法D,方法B,方法C,方法D分别计算指标x,指标y,指标z的值,那么最终执行完方法A的时间则是3s. 步骤1:配置线程池,

  • springmvc之获取参数的方法(必看)

    1.导包,四大核心包,一个切面包(AOP),logging,web,springmvc 2.配置文件,核心代码如下: web.xml <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param

随机推荐