eclipse中SSH三大框架环境搭建<二>

  通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用

  本例业务需求:将数据库一张表的信息通过JDBC查询出来并显示在页面中

  流程:action控制层-->service业务层-->dao数据层-->数据库

  第1步:我们还是需要加入spring开发中所需要的jar包

  找到下载并解压好的spring文件,然后找到该文件下的libs目录下文件,我们可以将所有jar包复制到我们web项目下的lib目录下

  

  注意:1>***.javadoc.jar文档和***.sources.jar源码我们可以不拷贝到我们的项目中,如果想加深自己的理解小编建议大家看看源码(毕竟这是第一手资料)

     2>我们还需要加入commons-logging.jar包。用来记录程序运行时的活动的日志记录。该文件在struts2文件中app目录下的struts2-showcase.war包目录下的WEB-INF下的lib中

  3>我们还需要加入struts2中的一个插件包struts2-spring-plugin-2.3.30.jar(经常容易忘记)

  第2步:由于本例用到了struts所以还是需要先配置strtus.xml文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7     <!-- 告知Struts2运行时使用Spring来创建对象 -->
 8     <constant name="struts.objectFactory" value="spring" />
 9     <package name="001pck" extends="struts-default">
10         <action name="Index" class="myIndexAction">
11             <result name="success">/WEB-INF/jsp/index.jsp</result>
12         </action>
13
14     </package>
15 </struts>

  注意:这里的class并没有引用一个具体的类而是取了一个别名,接下来再由spring给它注入

  第3步:配置applicationContext.xml文件

 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"
 4         xmlns:p="http://www.springframework.org/schema/p"
 5         xmlns:aop="http://www.springframework.org/schema/aop"
 6         xmlns:context="http://www.springframework.org/schema/context"
 7         xmlns:jee="http://www.springframework.org/schema/jee"
 8         xmlns:tx="http://www.springframework.org/schema/tx"
 9         xsi:schemaLocation="
10             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
11             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
12             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
13             http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
14             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
15     <!-- 类似于财务部门一样,类就是钱,所有需要类的实例都由srping去管理, pojo除外-->
16     <bean id="myIndexAction" class="action.IndexAction" scope="prototype">
17         <property name="index" ref="myService1"></property>
18     </bean>
19     <!-- index = new IndexServiceImpl() -->
20     <bean id="myDao1" class="dao.BookCardDaoImpl" scope="prototype">
21         <property name="c" ref="myConnection1"></property>
22     </bean>
23
24     <bean id="myService1" class="service.IndexServiceImpl" scope="prototype">
25         <property name="bcd" ref="myDao1"></property>
26     </bean>
27
28     <bean id="myConnection1" class="util.MyConnection_mysql" scope="prototype"></bean>
29
30     <bean id="myConnection2" class="util.MyConnection_sqlserver" scope="prototype"></bean>
31
32 </beans>

  在这里我介绍一下这份配置文件的相关信息吧

  1 头文件我们一般从官方模板中拷贝过来,需要注意一下版本号

  2 bean标记就是我们需要给项目中的每一个实例配置一个bean(pojo除外),当哪一层需要调用时,spring会帮我们注入。

  3 bean标记中id属性为在本文件中起一标识作用用来区分其他bean,class属性的值便是当前bean引用了哪一个类 ,scope属性的值为prototype为非单例的意思

  4 bean标记中的子标记property便是当前这个类中需要注入的属性,name属性值为我们java类中的属性名,ref属性值为当前类需要引用哪一个实现类。

  本例中我们可以看到dao中引用了myConnection1也就是引用了mysql的连接,如此一来便可以轻松切换mySQL和sqlServer两个数据库,而并不需要改动我们的任何逻辑代码。

  下面我给出一个dao的样例代码

 1 public class BookCardDaoImpl implements BookCardDao {
 2
 3     //只做属性的申明,不写死具体的实现
 4     private MyConnection c;
 5
 6     //提供一个set方法spring会自动注入
 7     public void setC(MyConnection c) {
 8         this.c = c;
 9     }
10
11     @Override
12     public List<BookCard> getAllCardInfo() {
13
14         // 第一步:获取数据库连接
15         Connection conn = c.getConnection();
16
17         // 第二步:查询数据库
18         // (操作JDBC,需要sql语句,需要执行sql语句对象,需要执行sql语句后结果集合)
19         String sql = "select * from BookCard";// 需要执行的sql语句
20         PreparedStatement stmt = null;// 执行sql语句对象
21         ResultSet rs = null;// 执行sql语句后的结果集
22         try {
23             stmt = conn.prepareStatement(sql);
24             rs = stmt.executeQuery();
25         } catch (Exception e) {
26             e.printStackTrace();
27         }
28
29         // 第三步
30         // 拿到rs后,执行一个遍历以及封装
31         List<BookCard> myBookCardList = new ArrayList<BookCard>();
32         try {
33             while (rs.next()) {
34                 // 风格:实体类是一个pojo对象,一般直接new就行
35                 BookCard bc = new BookCard();
36                 // 进行数据库封装
37                 bc.setCid(rs.getInt("cid"));
38                 bc.setName(rs.getString("name"));
39                 bc.setSex(rs.getString("sex"));
40                 bc.setCardDate(rs.getDate("cardDate"));
41                 bc.setDeposit(rs.getBigDecimal("deposit"));
42                 myBookCardList.add(bc);
43             }
44         } catch (Exception e1) {
45             e1.printStackTrace();
46         }
47
48         //关闭资源
49         try {
50             rs.close();
51             stmt.close();
52             conn.close();
53         } catch (Exception e) {
54             e.printStackTrace();
55         }
56
57         // 第5步返回结果集List给客户端
58         return myBookCardList;
59     }

 spring的环境在这一步已经是搭建完成了,我再来介绍一下spring的注入。

  大家可以清晰的看到左边这幅图呢是传统的面向对象编程的写法,每一层都与另外一层紧密耦合,当一层出现问题,层层都需要变动,在软件工程中是大忌

  右图中,层与层之间都已经分离出来了,这里具体实现是通过在每一层都定义一个接口,层与层之间调用的都是接口并不关心是哪一个实现类,真正的实现类是谁不在代码中出现而是交给spring让他给我们注入。

时间: 2024-10-27 12:19:12

eclipse中SSH三大框架环境搭建<二>的相关文章

eclipse中SSH三大框架环境搭建&lt;三&gt;

相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的搭建以及简单使用,但是在访问数据库层面使用的是传统的JDBC.在我们项目开发中使用JDBC确实是不太理想的,所以今天我给大家来讲解一下目前行业中比较流行的持久层框架——hibernate. 第1步:我们依旧需要引入hibernate的jar包 找到hibernate解压好的文件目录,在该目录下的lib目录下有

SSH三大框架的搭建整合(struts2+spring+hibernate)(转)

原文地址:http://blog.csdn.net/kyle0349/article/details/51751913  尊重原创,请访问原文地址 SSH说的上是javaweb经典框架,不能说100%要会SSH框架,但是大部分公司都在用,说到框架,都会提到ssh吧,这次就以很简单的注册例子来整合SSH框架.整合框架要注意的是先每个框架单独测通后再整合,不然整合后出现问题比较难排查. 环境:windows + MyEclipse + JDK1.7 + Tomcat7 + MySQL 代码已经测通,

使用MyEclipse整合ssh(Struts、Spring、Hibernate)三大框架(环境搭载+实例源码下载)

前言 SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

eclipse中SSH框架搭建和项目开发基本步骤

1.下载SSH框架代码和eclipse插件,地址:http://yunpan.cn/QTCrdHF4xkEVp (提取码:0e8d) 注意,一定要分清楚,SSH框架是要导入到自己的工程项目中的包,这些包是要在项目中调用的预先开发好的java文件:而eclipse插件是在eclipse环境下开发SSH相关项目是方便用户建立项目管理项目的工具,跟项目本身的文件和功能无关.一定要分清楚这两个概念. 2,下载完成之后,解压,会发现有5个文件夹,第一步要用到的是spring plugins for ecl

java ssh三大框架搭建整合

今天开个坑java ssh三大框架搭建整合(注解+XML 用全注解不是很好,有点地方需要用模板的时候XML直接可以复制一段) 1 所用框架.技术 编号 工具 版本 说明 Struts 2 2.3.20 Hibernate 4.3.9 实现持久化操作 Spring 4.1.5 Junit 4 单元测试 2.  开发环境 操作系统 Windows 7 开发工具 Eclipse Java EE 数据库 Oracle 11g Web容器 Tomcat 7.0.63 JAVA JDK 1.7 建立proj

【SSH三大框架】Hibernate基础第十二篇:load()懒加载分析以及一对一、一对多、多对一、多对多懒加载的分析

一.懒加载的定义: 懒加载:在WEB应用程序中,经常会需要查询数据库,系统的响应速度在很大程度上是与数据库交互的响应.因此,如果能够优化与数据库的交互速度,则能够大大提高WEB应用的响应速度. 例如:当有一个Student类和一个Teacher类.当我们加载一个学生的所有信息,包括:学号,姓名等属性后,此时Student类中的Teacher类型的属性为null,当我们需要知道这个Student对应的Teacher属性的时候,我们才去加载这个Teacher对象. 如果,我们只需要知道学生信息,我们

SSH三大框架注解整合(二)

5.使用spring注解注入service,DAO action: @ParentPackage(value = "struts-default") @Namespace("/") @Controller @Scope("prototype") public class BookAction extends ActionSupport implements ModelDriven<Book>{ //模型驱动 public Book b

个人理解去搭建SSH三大框架spring管理配置文件(初学第一次接触SSH)

<bean id="dataSuorces" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDirver"/>(oracle数据库) <property name="url"

SSH三大框架的整合

SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate核心配置文件 如果单纯使用Hibernate框架,核心配置文件名称hibernate.cfg.xml并且一定要放在src下面,而hibernate和spring整合的时候,hibernate核心配置文件名称和位置没有固定要求的(因为到时候会有一个参数指定其位置). 2. Hibernate映射配置文