SSH搭建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;
    }
}

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java、Spring、技术分享

Spring Import 三种用法与源码解读

  最近在看Spring Cloud相关的源码,每次引入一个新的starter,发现都会加一些enable的注解,比如:@EnableDiscoveryClie...

45040
来自专栏Java技术栈

Spring Boot 集成 Mybatis 实现双数据源

这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离。

23120
来自专栏Hongten

apache的开源项目-模板引擎(Velocity)_学习了两天就上手啦_源码下载

首先,如果你对Velocity不是很了解,还是建议你去apache的官方网站上去走走....

17610
来自专栏技术记录

rabbitMQ教程(三) spring整合rabbitMQ代码实例

一、开启rabbitMQ服务,导入MQ jar包和gson jar包(MQ默认的是jackson,但是效率不如Gson,所以我们用gson) ? ?  二、发...

35880
来自专栏流柯技术学院

CentOS升级Python2.7导致使用pip等命令安装模块失败

出现这个问题是因为:虽然已经把Python升级到了2.7版本,但是pip仍然是原来的版本,仍在原来python的site-package里面

21230
来自专栏拭心的安卓进阶之路

Android 进阶9:进程通信之 AIDL 解析

在 Android 进阶7:进程通信之 AIDL 的使用 中我们使用 AIDL 实现了跨进程的通信,但是不清楚 AIDL 帮我们做了什么。 AIDL 的本质是...

242100
来自专栏IT 指南者专栏

Spring 框架系列之 JDBC 整合

微信公众号:compassblog 欢迎关注、转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1、Spring框架整合 DAO 模板 JDBC:org...

344110
来自专栏Java与Android技术栈

使用 Kotlin + Spring Boot 进行后端开发Kotlin示例一:结合 Redis 进行数据存储和查询示例二:结合 RxJava 模拟顺序、并发地执行任务总结

Kotlin 是一个基于 JVM 的编程语言,它的简洁、便利早已不言而喻。Kotlin 能够胜任 Java 做的所有事。目前,我们公司 C 端 的 Androi...

17630
来自专栏Android源码框架分析

获取Android设备DeviceId与反Xposed Hook技术

APP开发中常需要获取设备的DeviceId,以应对刷单,目前常用的几个设备识别码主要有IMEI(国际移动设备身份码 International Mobile ...

48420
来自专栏编程坑太多

springboot (四)spring data jpa

17640

扫码关注云+社区

领取腾讯云代金券