当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪struts2.3.14+spring3.1.1+hibernate4.1.0框架搭建新版SSH(上)              以前开始学SSH的时候是根据马士兵的视频学的,当时由于急功近利,就稀里糊涂的将视频看了一下,看的时候根据马老师的操作配了一次环境,当时由于刚刚.........
    ▪设计模式读书笔记-----简单工厂模式              在设计原则中有这样一句话“我们应该针对接口编程,而不是正对实现编程”。但是我们还是在一直使用new关键字来创建一个对象,这不就是在针对实现编程么?   &nb.........
    ▪hibernate3-maven-plugin配置      将以下内容添加到maven的pom.xml中。 <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>hibernate3-maven-plugin</artifactId> <version>2.2</version> <configurat.........

[1]struts2.3.14+spring3.1.1+hibernate4.1.0框架搭建新版SSH(上)
    来源: 互联网  发布时间: 2013-11-19

        以前开始学SSH的时候是根据马士兵的视频学的,当时由于急功近利,就稀里糊涂的将视频看了一下,看的时候根据马老师的操作配了一次环境,当时由于刚刚开始结束SSH框架,什么都不懂。按照马老师配的环境配了一次之后就没自己动手配过,用当时配的环境写了一个小程序然后就不了了之了。当时也感觉倒入的jar包挺乱的,不知道到底应该倒入哪些包,或者不应该倒入哪些包,有的时候倒入之后会起很多的冲突,想必这些应该都是初学者迷茫之处。最近由于做毕业设计,想重新把环境搭建起来,保留着以后备用。本来想用以前的那个框架,回头一想太老了吧,就想用最近官方发布的struts2.3.14+spring3.1.1+hibernate4.1.0将环境搭建起来。开始的时候也参考了很多的文章,也将别人搭建好的框架下在下来进行运行,根据大牛们的文章和自己的想法才将环境搭建起来。下面我将搭建环境的步骤重新记录下来供大家参考,有不对的地方请大家多多指出,共同进步!!!

一、搭建环境时所必须的jar包(这些东西都是我从官方下载下来的,大家可以直接拿来用)

  • struts-2.3.14   下载地址  struts-2.3.14-all
  • spring3.1.1    下载地址  spring-framework-3.1.1.RELEASE-with-docs
  • hibernate4.1.0  下载地址  hibernate4.1.0
  • slf4j-1.7.5          下载地址   slf4j-1.7.5
  • log4j-1.2.16       下载地址  log4j-1.2.16
  • mysql-connector-java    下载地址mysql-connector-java-5.1.22.zip
  • junit4.11                           下载地址  junit4.11
  • aspectjrt                           下载地址aspectjrt
  • aspectjweaver                 下载地址aspectjweaver
  • hamcrest-core-1.3         下载地址hamcrest-core
  • 二、环境搭建

  • 首先上传一张在eclipse中的目录结构图  
  •                

              

                  2、程序中所使用到的jar包

                      


    三、环境的详细搭建

           1、首先咱们先把框架中所需导入的包以及包的位置给大家详解一下

                 a、导入struts的包

                       将下载下来的struts-2.3.14.zip进行解压,解压后进入apps文件夹,里面有几个不同的war包,这个是可以用winrar打开的,

                        找到struts2-rest-showcase.war包,然后用winrar打开,找到\WEB-INF\lib目录文件夹,里面含有一部分jar包,将其导入,其中有个commons-lang-2.4.jar包是重复的,两个包用一个就可以了,将commons-lang-2.4.jar删除,将其余的包复制到自己新建的web项目中的\WEB-INF\lib目录下,需要导入的struts包入下图所示

                            

                   此外还需要导入一个使struts和spring相结合的包,具体的位置如下图所示

                              

                再次还需要导入aopalliance-1.0.jar。起初我认为这个包是hibernate的东西,后来查了一下,这个包原来在struts中,具体的位置如下图所示

                                              

                         struts包倒入完毕。

                           

                            b、导入hibernate4.1.0的包,

                                   打开hibernate-release-4.1.0.Final.zip,找到hibernate-release-4.1.0.Final.zip\hibernate-release-4.1.0.Final\lib目录,下面有个required文件夹,将其中的包复制到自己新建的web项目中的\WEB-INF\lib。具体的包的名称如下图所示   

                               

                    导入这些包之后会发现其中有两个名称相同commons-collections包,就是版本不一样,由于struts和hibernate运行时都需要此包,所以咱们在分别导入包的时候就导入了两次,把版本较低的那个包删除即可,即删除commons-collections-3.1.jar。同时javassist包也是重复的,将多余的那个包删除即可,删除版本较低的即javassist-3.11.0.GA.jar。

                   由于此系统用到的连接池是c3p0的连接池,所以还需要加入c3p0的包,具体包的位置如下图所示

                              

     

                        继续导入hibernate-entitymanager-4.1.0.Final.jar  具体位置如下图所示

                                   

                       c、导入spring3.1.1的包

                               在导入spring的包的时候,其中有些包从名称上看一下,然后百度一下就能知道包的作用是什么,当时我导入spring包的时候是参考的别人配的环境,所以有些包的作用是什么我也不知道,大家只要把下面的包导入之后就肯定没问题。具体导入的包入下图所示,框起来的包必须导入(只是以我的经验来看,可能有些包始没用的)

                  

                d、导入slf4j的包,

                   其中主要用的是log4j,但是是用log4j的时候需要slf4j的支持,所以先导入slf4j的包,具体需要导入的包入下图所示

      

        
    [2]设计模式读书笔记-----简单工厂模式
        来源: 互联网  发布时间: 2013-11-19

            在设计原则中有这样一句话“我们应该针对接口编程,而不是正对实现编程”。但是我们还是在一直使用new关键字来创建一个对象,这不就是在针对实现编程么?

            针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。入股代码是针对接口而写,那么可以通过多态,它可以与任何新类实现该接口。但是,当代码使用一大堆的具体类时,等于是自找麻烦,因为一旦加入新的具体类,就必须要改变代码。在这里我们希望能够调用一个简单的方法,我传递一个参数过去,就可以返回给我一个相应的具体对象,这个时候我们就可以使用简单工厂模式。


            一、基本定义                                                                                                                 

            简单工厂模式又称之为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。


            二、模式结构                                                                                                                

            模式结构图如下:

            模式分析:

            Factory:工厂角色。专门用于创建实例类的工厂,提供一个方法,该方法根据传递的参数不同返回不同类的具体实例。

            Product:抽象产品角色。为所有产品的父类。

            ConcreteProduct:具体的产品角色。

            简单工厂模式将对象的创建和对象本身业务处理分离了,可以降低系统的耦合度,使得两者修改起来都相对容易些。当以后实现改变时,只需要修改工厂类即可。


            三、简单工厂模式实现                                                                                                   

            模式场景:在一个披萨店中,要根据不同客户的口味,生产不同的披萨,如素食披萨、希腊披萨等披萨。

            该例的UML结构图如下:

            代码实现

             Pizza制造工厂:SimplyPizzaFactory.java

    /**
     * 专门用于创建披萨的工厂类
     */
    public class SimplePizzaFactory {
    	public Pizza createPizza(String type){
    		Pizza pizza = null;
    		
    		if(type.equals("cheese")){
    			pizza = new CheesePizza();
    		}
    		else if(type.equals("clam")){
    			pizza = new ClamPizza();
    		}
    		else if(type.equals("pepperoni")){
    			pizza = new PepperoniPizza();
    		}
    		else if(type.equals("veggie")){
    			pizza = new VeggiePizze();
    		}
    		
    		return pizza;
    	}
    }

             抽象披萨:Pizza.java

    /**
     * 抽象pizza类
     */
    public abstract class Pizza {
    	public abstract void prepare();
    	
    	public abstract void bake();
    	
    	public abstract void cut();
    	
    	public abstract void box();
    }
    

             具体披萨:CheesePizza.java

    public class CheesePizza extends Pizza{
    
    	@Override
    	public void bake() {
    		System.out.println("bake CheesePizza ...");
    	}
    
    	@Override
    	public void box() {
    		System.out.println("box CheesePizza ...");
    	}
    
    	@Override
    	public void cut() {
    		System.out.println("cut CheesePizza ...");
    	}
    
    	@Override
    	public void prepare() {
    		System.out.println("prepare CheesePizza ...");
    	}
    
    }

             PizzaStore.java

    public class PizzaStore {
    	SimplePizzaFactory factory;      //SimplePizzaFactory的引用
    	public PizzaStore(SimplePizzaFactory factory){
    		this.factory = factory;
    	}
    	
    	public Pizza orderPizza(String type){
    		Pizza pizza;
    		pizza = factory.createPizza(type);       //使用工厂对象的创建方法,而不是直接new。这里不再使用具体实例化
    		
    		pizza.prepare();
    		pizza.bake();
    		pizza.cut();
    		pizza.box();
    		
    		return pizza;
    	}
    }

     

             四、简单工厂模式的优缺点                                                                                          

             优点

                1、简单工厂模式实现了对责任的分割,提供了专门的工厂类用于创建对象。

                2、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。

                3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。

     

             缺点

                1、由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。


        
    [3]hibernate3-maven-plugin配置
        来源: 互联网  发布时间: 2013-11-19

    将以下内容添加到maven的pom.xml中。


    <build>

    <plugins>

    <plugin>

    <groupId>org.codehaus.mojo</groupId>

    <artifactId>hibernate3-maven-plugin</artifactId>

    <version>2.2</version>

    <configuration>

    <components>

    <component>

    <name>hbm2java</name>

    <outputDirectory>src/main/java/</outputDirectory>

    <implementation>jdbcconfiguration</implementation>

    </component>

    <component>

    <name>hbm2hbmxml</name>

    <outputDirectory>src/main/resources/</outputDirectory>

    </component>

    <component>

    <name>hbm2dll</name>

    <outputDirectory>src/main/resources/</outputDirectory>

    </component>

    <component>

    <name>hbm2cfgxml</name>

    <outputDirectory>src/main/resources/</outputDirectory>

    <implementation>jdbcconfiguration</implementation>

    </component>

    </components>

    <componentProperties>

    <drop>true</drop>

    <configurationfile>/src/main/resources/hibernate.cfg.xml</configurationfile>

    <packagename>com.vuclip.platform.persistence.entity</packagename>

    </componentProperties>

    </configuration>

    <dependencies>

    <dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.6</version>

    </dependency>

    </dependencies>

    </plugin>

    </plugins>

    </build>  

    作者:atec2000 发表于2013-5-23 13:41:43 原文链接
    阅读:3 评论:0 查看评论

        
    最新技术文章:
    ▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
    ▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
    ▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
    ▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
    ▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
    ▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
    ▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
    ▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
    ▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
    ▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
    ▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
    ▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
    ▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
    ▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
    ▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
    ▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
    ▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
    ▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
    ▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
    ▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
    ▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
    ▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
    ▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
    ▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
    ▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
    ▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
    ▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
    ▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
    ▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
    ▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3