guice整合struts2,guice的使用

Posted 全力以赴001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了guice整合struts2,guice的使用相关的知识,希望对你有一定的参考价值。

平时我们习惯用了spring整合struts2,今天我们就来见识一下guice整合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/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <filter>
    <filter-name>TransactionFilter</filter-name>
    <filter-class>com.ming.core.web.filter.TransactionFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TransactionFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>guiceFilter</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>guiceFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <listener>
    <listener-class>com.ming.core.web.listener.GoogleGuiceServletContextListener</listener-class>
  </listener>
  
  <!-- struts2的过滤器 -->
  <filter>
    <filter-name>struts2</filter-name>
      <filter-class>
          org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      </filter-class>
 </filter>
   <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

然后是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>
    <!-- 引用guice代理 -->
    <constant name="struts.objectFactory" value="guice" />
    <constant name="struts.i18n.encoding" value="UTF-8" />    
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    <include file="com/ming/user/action/userStruts.xml"></include>
</struts>

其次是userStruts.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>
    <package name="com.ming.user.action" namespace="/user"
        extends="struts-default">
        <action name="*_*" class="com.ming.user.action.{1}Action"
            method="{2}">
            <result name="data" type="stream">
                <param name="contentType">text/html</param>
                <param name="inputName">inputStream</param>
            </result>
        </action>
    </package>
</struts>

然后我们看一下action的代码:

package com.ming.user.action;

import java.io.InputStream;

import com.google.inject.Inject;
import com.ming.core.util.WebUtils;
import com.ming.user.entity.User;
import com.ming.user.service.UserService;

public class UserAction {

    private String account;
    
    private int user_id;
    
    private InputStream inputStream = null;
    
    @Inject
    private UserService userService;
    
    public String saveUser() throws Exception{
        User u = new User();
        u.setAccount(account);
        u.setUser_id(user_id);
        try {
            userService.add(u);
            inputStream=WebUtils.responseText(true, "保存信息成功!");
        } catch (Exception e) {
            inputStream=WebUtils.responseText(false, "保存信息失败!");
            e.printStackTrace();
        }
        return "data";
    }
    

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public int getUser_id() {
        return user_id;
    }

    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }


    public InputStream getInputStream() {
        return inputStream;
    }


    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }
    
    
    
    
    
}

 

struts2就是这样与guice整合成功的。

 

源码下载:喜欢我的代码点个赞呗

 

以上是关于guice整合struts2,guice的使用的主要内容,如果未能解决你的问题,请参考以下文章

Struts2,Guice和index.jsp

Guice vs AspectJ

玩 2.5 剪影 4 - 带有 guice 的 DI

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

Junit 5 如何使用 Guice DI

Guice源码学习基本原理