Struts2-静态注入

    1.当tomcat启动的时候,struts2容器做的事情
      default.properties
        struts2-default.xml
        struts2-plugin.xml
        struts.xml
        说明:在这三种xml文件中,dtd约束是一样的,所以可以出现相同的元素,如果出现,后者覆盖前者
    2.如果在配置文件中,写下如下配置:
        <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
        当web容器启动的时候就会加载bean了
  3.ObjectFactory 对象工厂

    4.在default.properties文件中
        struts.objectFactory = spring
    5.通过静态注入改变action的产生方式
        1> 写一个类,该类继承ObjectFactory, 重写buildAction方法
        2> 把这个类通过bean的方式放入到struts2的配置文件中
        3> 通过重新指向struts.objectFactory的值来改变

示例程序:

struts.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.devMode" value="true"></constant>
    <bean name="myAction" type="com.opensymphony.xwork2.ObjectFactory" class="com.sn.action.CreatAction"></bean>
    <constant name="struts.objectFactory" value="myAction"></constant>
    <package name="aaa" namespace="/" extends="struts-default">
        <action name="test" class="com.sn.action.TestAction"></action>
    </package>
</struts>
public class CreatAction extends ObjectFactory{
    @Override
    public Object buildAction(String actionName, String namespace,
            ActionConfig config, Map<String, Object> extraContext)
            throws Exception {
        System.out.println("create action");
        return null;
    }
}
时间: 2024-10-11 18:01:14

Struts2-静态注入的相关文章

springboot-31-springboot静态注入

springboot中 使用 @Autowired 注入时, 是可以为静态变量进行注入的 package com.iwhere.footmark.tools; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.

日志系统实战(一)-AOP静态注入

背景 近期在写日志系统,需要在运行时在函数内注入日志记录,并附带函数信息.这时候就想到用Aop的方式了. 技术分析 AOP分动态注入和静态注入. 动态注入方式 1:Remoting的ContextAttribute上下文(性能差). 2:动态代理(反射),大多AOP框架都用这种方式. 3:MVC的filter,也是反射. 第一种:性能太差不考虑.第二种:为了记日志,生产环境都用动态代理,性能损耗不小,不推荐.第三种:只有UI层能用.其他层和第二种一样. 静态注入方式 (本文重点). 1:基于IL

基于Mono.Cecil的静态注入

Aop注入有2种方式:动态注入和静态注入,其中动态注入有很多实现了 动态注入有几种方式: 利用Remoting的ContextBoundObject或MarshalByRefObject. 动态代理(反射),很多AOP框架都用这种方式. MVC的filter,也是反射. 这里主要介绍静态注入 ========================================================================================== 起初的想法是实现一种功能

使用Dagger2做静态注入, 对比Guice.

Dagger 依赖注入的诉求, 这边就不重复描述了, 在上文Spring以及Guice的IOC文档中都有提及, 既然有了Guice, Google为啥还要搞个Dagger2出来重复造轮子呢? 因为使用动态注入, 虽然写法简单了, 耦合也降低了, 但是带来了调试不方便, 反射性能差等一些缺点. 而Dagger跟Guice最大的差异在于, 他是编译期注入的, 而不是运行时. 他生成的代码可以直观的调试, 也不是通过反射, 而是通过构建工厂类. 下面我们用代码来简单演示一下. 构建工程 既然Dagge

spring静态注入组件——工具类常用

如果直接用spring注入静态属性,则会报错,提示@Resource annotation is not supported on static fields,如果又一定要通过spring注入bean,可以采用@PostConstruct注解在某个用来初始化的方法上,注入时注入到另一个不是 静态的变量里,然后在初始化方法里面将注入好的变量赋值给静态变量,通过这些操作就给静态变量赋值. [java] view plaincopy package com.inth.base.util; import

struts2 参数注入 方法拦截器

web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee"

日志系统实战 AOP静态注入

http://www.cnblogs.com/mushroom/p/3932698.html http://www.cnblogs.com/mushroom/p/4124878.html http://www.cnblogs.com/mushroom/p/4156468.html http://www.cnblogs.com/whitewolf/category/312512.html

Mac_dylib静态注入

源码:https://github.com/haidragon/dylib_inject/tree/master/dylibinject1 原文地址:https://blog.51cto.com/haidragon/2382025

linux_ELF静态注入

源码:https://github.com/haidragon/ELFinject 原文地址:https://blog.51cto.com/haidragon/2383000

Spring静态属性注入

今天遇到一个工具类,需要静态注入一个属性,方法如下: 第一步:属性的set和get方法不要加static package cn.com.chinalife.ebusiness.common.util; import cn.com.chinalife.ebusiness.sys.interfacePortal.businessInterface.service.facade.InterfaceInfoService; public class EPolicyDownload { private s