maven-struts2-spring maven在struts2上搭建spring,使用依赖注入的方法

配置文件

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <groupId>com.lgp</groupId>
 5     <artifactId>maven_struts_spring</artifactId>
 6     <packaging>war</packaging>
 7     <version>0.0.1-SNAPSHOT</version>
 8     <name>maven_ssh1 Maven Webapp</name>
 9     <url>http://maven.apache.org</url>
10     <properties>
11         <project.build.sourceEncoding>
12             UTF-8
13         </project.build.sourceEncoding>
14     </properties>
15
16     <dependencies>
17         <dependency>
18             <groupId>junit</groupId>
19             <artifactId>junit</artifactId>
20             <version>3.8.1</version>
21             <scope>test</scope>
22         </dependency>
23         <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
24         <dependency>
25             <groupId>commons-logging</groupId>
26             <artifactId>commons-logging</artifactId>
27             <version>1.2</version>
28         </dependency>
29
30         <!-- 添加struts2依赖 -->
31         <dependency>
32             <groupId>org.apache.struts</groupId>
33             <artifactId>struts2-core</artifactId>
34             <version>2.3.31</version>
35         </dependency>
36         <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-spring-plugin -->
37         <dependency>
38             <groupId>org.apache.struts</groupId>
39             <artifactId>struts2-spring-plugin</artifactId>
40             <version>2.3.31</version>
41         </dependency>
42         <!-- 添加Spring依赖 -->
43         <dependency>
44             <groupId>org.springframework</groupId>
45             <artifactId>spring-core</artifactId>
46             <version>3.1.1.RELEASE</version>
47         </dependency>
48
49         <dependency>
50             <groupId>org.springframework</groupId>
51             <artifactId>spring-beans</artifactId>
52             <version>3.1.1.RELEASE</version>
53         </dependency>
54
55         <dependency>
56             <groupId>org.springframework</groupId>
57             <artifactId>spring-context</artifactId>
58             <version>3.1.1.RELEASE</version>
59         </dependency>
60
61         <dependency>
62             <groupId>org.springframework</groupId>
63             <artifactId>spring-jdbc</artifactId>
64             <version>3.1.1.RELEASE</version>
65         </dependency>
66     </dependencies>
67     <build>
68         <finalName>maven_ssh1</finalName>
69         <plugins>
70             <plugin>
71                 <artifactId>maven-compiler-plugin</artifactId>
72                 <version>2.3.1</version>
73                 <configuration>
74                     <source>1.7</source>
75                     <target>1.7</target>
76                     <encoding>UTF-8</encoding>
77                 </configuration>
78             </plugin>
79             <plugin>
80                 <groupId>org.apache.maven.plugins</groupId>
81                 <artifactId>maven-surefire-plugin</artifactId>
82                 <version>2.12.4</version>
83                 <configuration>
84                     <testFailureIgnore>true</testFailureIgnore>
85                 </configuration>
86             </plugin>
87         </plugins>
88     </build>
89 </project>

pom.xml

网上有很多用junit教你搭的,虽然都能跑,但是如果要实际运行和前台交互,那样是不行的,还要导入我所导入的包。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:web="http://xmlns.jcp.org/xml/ns/javaee">
 3     <display-name>Archetype Created Web Application</display-name>
 4     <filter>
 5         <filter-name>struts2</filter-name>
 6         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
 7         </filter-class>
 8     </filter>
 9     <filter-mapping>
10         <filter-name>struts2</filter-name>
11         <url-pattern>/*</url-pattern>
12     </filter-mapping>
13     <listener>
14         <listener-class>org.springframework.web.context.ContextLoaderListener
15         </listener-class>
16     </listener>
17     <context-param>
18         <param-name>contextConfigLocation</param-name>
19         <param-value>classpath:applicationContext.xml</param-value>
20     </context-param>
21 </web-app>

web.xml

则多了sprig的配置,留意<context-param>,自带的web.xml会报错说版本不对,只要把开头的那一坨玩意去掉即可。

其他就是在resource文件夹下的配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
 4     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="
 6      http://www.springframework.org/schema/beans
 7      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 8      http://www.springframework.org/schema/tx
 9      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
10      http://www.springframework.org/schema/aop
11      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
12      http://www.springframework.org/schema/context
13      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
14     <bean id="userDao" class="com.dao.impl.UserDao"></bean>
15     <bean id="userService" class="com.service.impl.UserService">
16         <property name="userDao" ref="userDao"></property>
17     </bean>
18     <bean id="userAction" class="com.action.UserAction">
19         <property name="userService" ref="userService"></property>
20     </bean>
21 </beans>

applicationcontext.xml 使用的是依赖注入,这个方法在初学spring的时候,对spring有很好的理解,层层递进,关系明了,当然实际应用通常用注解注入,但是如果我那样写的话,就看不透它的运行轨迹了。

java代码

 1 package com.service.impl;
 2
 3 import com.dao.IUserDao;
 4 import com.service.IUserService;
 5
 6 public class UserService implements IUserService {
 7     private IUserDao userDao;
 8
 9     public void setUserDao(IUserDao userDao) {
10         this.userDao = userDao;
11     }
12
13     public void add() {
14         System.out.println("UserService.add()");
15         userDao.add();
16     }
17
18 }
1 package com.service;
2
3 public interface IUserService {
4     public void add();
5 }
 1 package com.dao.impl;
 2
 3 import com.dao.IUserDao;
 4
 5 public class UserDao implements IUserDao{
 6
 7     public void add() {
 8         System.out.println("UserDao.add()");
 9     }
10 }
1 package com.dao;
2
3 public interface IUserDao {
4     public void add();
5 }
package com.action;

import com.service.IUserService;

public class UserAction {
    private String name;
    private String pwd;
    private IUserService userService;

    public String add() {
        System.out.println("name--" + this.getName());
        System.out.println("pwd---" + this.getPwd());
        userService.add();
        return "success";
    }

    public void setUserService(IUserService userService) {
        this.userService = userService;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

留意是用接口来实现方法的。

时间: 2024-10-16 04:27:16

maven-struts2-spring maven在struts2上搭建spring,使用依赖注入的方法的相关文章

Spring IOC源码详解之容器依赖注入

Spring IOC源码详解之容器依赖注入 上一篇博客中介绍了IOC容器的初始化,通过源码分析大致了解了IOC容器初始化的一些知识,先简单回顾下上篇的内容 载入bean定义文件的过程,这个过程是通过BeanDefinitionReader来完成的,其中通过 loadBeanDefinition()来对定义文件进行解析和根据Spring定义的bean规则进行处理 - 事实上和Spring定义的bean规则相关的处理是在BeanDefinitionParserDelegate中完成的,完成这个处理需

在net Core3.1上基于winform实现依赖注入实例

目录 在net Core3.1上基于winform实现依赖注入实例 1.背景 2.依赖注入 2.1依赖注入是什么? 2.1依赖注入的目的 2.2依赖注入带来的好处 2.2.1生命周期的控制 2.2.2 实现了展现层(调用者)与服务类之间的解耦 2.2.3 开发者不用再去考虑依赖之间的关系 2.3 依赖注入使用的设计模式 2.3.1 代理模式 2.3.2 工厂模式 3.在Net Core 3.1上基于winform实现依赖注入 3.1 Net Core 3.1中对winform的支持. 3.2 w

Eclipse上搭建Spring的开发环境

一.安装Spring Tool Suite插件 如图: 点击Finish之后等待安装,安装完之后弹窗点击yes重启Eclipse,重启后显示如下界面: 二.搭建Spring开发环境 1.导入jar包到工程的ClassPath下     x.x.x为版本号 commons-logging-x.x.x.jar       -------->Spring的依赖包 spring-beans-x.x.x.RELEASE.jar spring-context-x.x.x.RELEASE.jar spring

Spring+SpringMvc+Mybatis框架集成搭建教程二(依赖配置及框架整合)

依赖导入以及框架整合 (1).打开项目的pom.xml文件,声明依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_

Spring MVC篇一、搭建Spring MVC框架

本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中java文件夹是sources文件夹,resources是资源文件夹.spring文件夹里是Spring上下文配置和Spring MVC配置文件. 需要注意的是,项目自动生成以后会有两个web文件目录,一个是web文件夹(我这里已经删除了),另一个是默认的webapp文件夹.我这里使用默认的目录,也就是

【SSH三大框架】Spring基础第一篇:搭建Spring环境、实例化Bean、管理Bean的作用域以及Bean的生命周期

一.搭建Spring环境: 在lib目录下引入jar包,然后add to path,这就不过多说了. 二.实例化Bean的三种方式: 首先,我们先写两个java类: 接口类: public interface PersonService { public abstract void save(); } 实现类: public class PersonServiceBean implements PersonService { @Override public void save(){ Syste

史上最好用的依赖注入框架Google Guice【转】

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC).Guice非常小而且快. (其他的依赖注入框架还有Dagger,Spring) Spring框架的依赖注入是家喻户晓的,但是在实际的开发中我们想使用便捷的依赖注入功能,但是又不想引入Spring框架的复杂性,该怎么办呢? 有了Google Guice,这个问题便简单了,首先在你的maven项目里引入 <dependency> <groupId>com.google.injec

Spring的控制反转(IOC)和依赖注入(DI)详解

首先介绍下(IOC)控制反转: 所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制器就有应用转移到了外部容器,控制权的转移就是反转 示例代码如下: public class PersonServiceBean{ private PersonDao personDao = new <strong><span style="color:#FF0000;">PersonDaoImpl</span></

Spring依赖注入 set方法注入

涉及的标签:property 标签的属性: name:用于指定注入时所调用的set方法的名称(注意name的值是set方法的名字小写) value:用于提供基本数据类型和String类型的数据 ref:用于指定其他的bean.它的值就是在spring的Ioc核心容器中出现过的bean对象 优势:创建对象是时没有明确的要求,可以直接使用默认的构造函数 弊端:如果有某个成员必须有值,则获取对象时有可能set方法没有执行 <bean id="accountService" class=