`
gao_20022002
  • 浏览: 164769 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

简单示例搭建框架之一

    博客分类:
  • Java
阅读更多

一直自己搭建框架的意愿,跟着别人的模式走,对于真正体会开发显得不足。

 

经验有限,望高手指点。(好久都没有进行web开发,有点手生,呵呵,努力。)

 

第一步:首先下载需要的开发包。

1、ext开发包(ext-2.2.zip)。

下载地址:http://extjs.com/

2、struts开发包(struts-2.0.14-all.zip)。

下载地址:http://struts.apache.org/

3、spring开发包(spring-framework-2.5.6-with-dependencies.zip)

下载地址:http://www.springsource.org/

4、Hibernate开发包(hibernate-distribution-3.3.1.GA-dist.zip),对于它,还有相关包,可以根据需要选择。

下载地址:http://www.hibernate.org/

对于spring的网站,很奇怪,现在变成springsource.com,尝试了好多次才打开,不知道有什么限制。

另外环境搭建:eclipse3.3+tomcat6.0+mySql5.0。

 

第二步:建立工程。

这个不用多说。

首先在这里想问一个问题:在建立工程中有没有工程编码的设置?

这个在以后开发中遇到很多问题,如果有的话,尽量设置为UTF-8,而不是默认的那个ISO-8859-1,如果你的工程出现中文资源传问题,你就会发现这个的必要,当然这只是一点。

 

第三步:设置数据库编码。

在建立数据库是设置默认编码为UTF-8,假如不这样,在字段中出现中文时,会出错,开始是莫名其妙。首次使用mySQL还不是很熟悉,尽力学习吧。

 

OK,开始工程框架之旅。

最基本的东西就是配置(web.xml\struts.xml\spring.xml),还有就是引入包的问题。

 

先说引入包。

对于上struts:

struts2-core-2.0.14.jar:

核心包,必须。

ognl-2.6.11.jar: 

OGNL的全称是Object Graph Navigation Language(对象图导航语言)。

xwork-2.0.7.jar:

与webwork相关,具体细节不是很清楚。

struts2-spring-plugin-2.0.14.jar:

与spring结合插件,可以不使用。


对于spring:

spring.jar:

核心包,必须。

 

对于hibernate:

hibernate3.jar:

核心包,必须。

antlr-2.7.6.jar:

ANother Tool for Language Recognition(antlr)。

commons-collections-3.1.jar:

集合类。

dom4j-1.6.1.jar:

XML配置和映射解释器。

javassist-3.4.GA.jar:

Javassist 字节码解释器。

jta-1.1.jar:

jta规范,当Hibernate使用jta的时候需要。

slf4j-api-1.5.2.jar以及slf4j-log4j12-1.5.0.jar:

新的日志记录模式,可替代log4j。

 

另外对于common的选择,则自己选择。

 

对于mySQL的连接,采用jtds,包括:

commons-pool-1.3.jar:

一个用于在Java程序中实现对象池化的组件。

jtds-1.2.2.jar:

JTDS JDBC Driver。

mysql-connector-java-5.0.3-bin.jar:

mysql驱动。

 

对于其余的jar,可以根据需要进行增加。

以尽量少用为原则,在这一点上,发现Hibernate做的比较好,在他的目录下明显放置required、optional、bytecode显而易见,可以自由选择,当然要了解具体你要做的事务。

好了,反正开发的原则是开始尽可能少加入jar包,然后根据需要逐步增加,在配置完基本的xml后,启动工程,看看提示的错误,在进行jar包的引入。

说句实话,对于这种框架组合最烦的就是jar包版本问题。

 

下面来看主要的配置文件,一般这个配置成功了,开发就变的简单了。

看web.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
		<!-- 
				<init-param>
				<param-name>config</param-name>
				<param-value>
				struts-default.xml,struts-plugin.xml,struts.xml,../config/struts/*.xml
				</param-value>
				</init-param>
			-->
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/log4j.properties</param-value>
	</context-param>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/config/spring/*.xml</param-value>
	</context-param>

	<listener>
		<listener-class>
			org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app> 

看struts配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.locale" value="zh_CN" />
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<constant name="struts.i18n.reload" value="true" />
	<constant name="struts.custom.i18n.resources" value="messages" />
	<constant name="struts.action.extension" value="do" />
	<constant name="struts.configuration.xml.reload" value="true" />
	<constant name="struts.enable.DynamicMethodInvocation"
		value="false" />

	<include file="struts_admin.xml" />
</struts>

 而对于实际处理的action,则采用分离xml配置。

 这里是上边配置的struts_admin.xml的内容。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="admin" namespace="/admin" extends="struts-default">
		<action name="login" class="userAction" method="login">
			<result name="input">
				/com/ebook/web/pages/failure.jsp
			</result>
			<result name="success">
				/com/ebook/web/pages/user/list.jsp
			</result>
		</action>

		<action name="list" class="userAction" method="list">
			<result name="input">
				/com/ebook/web/pages/failure.jsp
			</result>
			<result name="success">
				/com/ebook/web/pages/user/json.jsp
			</result>
		</action>		
	
		<action name="layout" class="userAction" method="layout">	
			<result name="input">
				/com/ebook/web/pages/failure.jsp
			</result>
			<result name="success">
				/com/ebook/web/pages/user/layout.jsp
			</result>
		</action>
		<action name="json" class="userAction" method="json">
		</action>
		<action name="ajax" class="userAction" method="ajax">	
		</action>
	</package>
</struts> 

看spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location"
			value="WEB-INF/config/database/database.properties" />
	</bean>

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${database.driver}"></property>
		<property name="url" value="${database.url}"></property>
		<property name="username" value="${database.user}"></property>
		<property name="password" value="${database.password}"></property>
	</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.SQLServerDialect
				</prop>
				<prop key="hibernate.cache.use_query_cache">false</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/ebook/user/model/xml/User.hbm.xml</value>
			</list>
		</property>
	</bean>

	<bean id="userDao" class="com.ebook.user.dao.impl.UserDaoImpl">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	<bean id="userServer"
		class="com.ebook.user.server.impl.UserServerImpl">
		<property name="dao">
			<ref bean="userDao" />
		</property>
	</bean>
	<bean name="userAction" class="com.ebook.user.action.UserAction">
		<property name="server">
			<ref bean="userServer" />
		</property>
	</bean>
</beans>

在配置中注意头部文件。

至于具体的实现业务,则分别放置于action、server、dao中。

action支持的struts的跳转,即视图数据获取、展示以及控制跳转。

server支持的spring,进行事务处理,支持业务逻辑。

dao支持Hibernate,进行数据库操作,即所谓的持久层。

另外,增加model,及数据模型,将数据对象转换为java对象,Hibernate支持。

附带一个配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.ebook.user.model">
	<class name="User" table="t_user">
		<id name="id" type="java.lang.String" column="USERID"></id>
		<property name="name" type="java.lang.String">
			<column name="USERNAME" />
		</property>
		<property name="pwd" type="java.lang.String">
			<column name="PWD" />
		</property>
		<property name="departid" type="java.lang.String">
			<column name="DEPARTID" />
		</property>
		<property name="email" type="java.lang.String">
			<column name="EMAIL" />
		</property>
		<property name="state" type="java.lang.String">
			<column name="STATE" />
		</property>
	</class>
</hibernate-mapping>

至于具体业务模块是否在此细分问题,看情况决定。

 

java代码的写作风格,看自己情况了。

 

组织结构就上面所述。

 

前页面处理采用ext,由于没有经验,学习中。

 

现在的感觉,用上了ext,struts骄傲的标签完全没有用,对于国际化支持问题,ext不知道怎么体现。

 

struts骄傲的标签,没用上。Form数据收集整理还没来得及想详看。对ActionSupport进行研究。

spring骄傲的事务管理,简单业务也是用不上。至于IOC,必不可少。

Hibernate骄傲的那么多技术,不知道能用到多少。对HibernateDaoSupport进行研究。

 

深入吧,研究中……

 

慢工出细活。

 

说句闲话:思路很重要,思想更重要。原理很重要,实现是其次。

 

 

 

 

评论

相关推荐

    SSM搭建的简单示例

    这个"SSM搭建的简单示例"旨在介绍如何将这三个框架整合在一起,构建一个基本的Web应用程序。下面我们将深入探讨SSM框架的各个组成部分以及它们在实际项目中的作用。 首先,Spring框架是核心,它提供了依赖注入...

    SSH框架简单搭建

    在这个"SSH框架简单搭建"的主题中,我们将深入探讨如何配置和搭建SSH框架,以及数据映射的概念。 **Spring框架**:Spring是核心的依赖注入(DI)和面向切面编程(AOP)框架,它提供了一个全面的编程和配置模型,...

    SSM框架搭建示例

    这个框架搭建示例提供了一个完整的、已经配置好的项目,旨在帮助开发者快速理解和上手SSM的集成应用。 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(Dependency Injection,DI)和面向...

    Maven搭建SSM框架示例

    SSM框架,全称为Spring、SpringMVC和...通过这个简单的SSM框架搭建示例,开发者能够了解如何将这三个强大的框架整合在一起,以及如何利用它们来构建一个功能完备的Web应用。这将为后续更复杂的项目开发奠定坚实的基础。

    SSM框架搭建的一个简单的Shiro示例

    在"SSM框架搭建的一个简单的Shiro示例"中,我们主要关注的是授权功能的实现。通过Shiro,我们可以方便地控制用户对不同资源的访问权限,例如限制某些用户只能访问特定的页面或执行特定的操作。这使得我们的SSM应用...

    struts 简单框架搭建

    在进行Struts2框架的简单搭建时,首先我们需要确保开发环境已经准备就绪。这包括安装Java Development Kit (JDK)、集成开发环境(如Eclipse或IntelliJ IDEA)、以及Tomcat服务器。接下来,我们将逐步介绍如何创建一...

    SSH项目搭建步骤简单示例

    SSH 项目搭建步骤简单示例是指使用 SSH 框架搭建一个完整的 Java 项目的步骤,该示例展示了从创建项目到配置 Web.xml 文件、添加 Hibernate 支持、添加 Struts2 支持、配置 Hibernate 反转工程等步骤。 创建项目 ...

    SSM简单搭建示例

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发...在实际开发中,你可能还需要考虑异常处理、安全性、性能优化等方面,但这个SSM简单搭建示例提供了一个基本的起点,帮助初学者理解这三大框架的整合过程。

    第一次搭建Spring框架

    以下是一个简单的配置示例: ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans ...

    spring-clouod简单框架搭建

    在"spring-clouod简单框架搭建"的项目中,我们可以看到以下几个步骤: 1. **服务注册中心**:Eureka 是 Spring Cloud 的服务注册与发现组件,它允许各个服务实例向中心注册,同时提供服务查询。在描述中提到的 ...

    用Python写网络爬虫(示例网站搭建)(框架+本书pdf+章节代码 )

    书中不仅介绍了网络爬虫的基础知识,还提供了一个实际的示例网站搭建过程,以加深对网络爬虫工作原理的理解。同时,书中的每章节都配有相应的代码示例,方便读者边学边练,快速提升技能。 网络爬虫是自动化获取...

    快速搭建web项目框架

    本教程将带你了解如何快速搭建一个Web项目框架,特别适用于初学者和个人自学。首先,我们需要理解Web框架的基本概念。 **Web框架** 是一组预定义的组件和规则,它们帮助开发者遵循最佳实践来构建Web应用程序。框架...

    自己搭建的一个框架

    标题 "自己搭建的一个框架" 暗示了这个压缩包可能包含了一个人自定义开发的软件框架,这通常意味着一个用于简化特定类型软件开发的基础结构。框架可以是用于Web应用、移动应用或者桌面应用,它提供了代码重用和设计...

    SSH框架搭建源码

    这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个完整的Web应用程序。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    ssm纯净自搭建框架

    这个名为"ssm纯净自搭建框架"的项目,旨在提供一个简洁、易学的环境,供开发者进行示例学习和实践。在这个环境中,我们使用了IntelliJ IDEA 2018.1作为开发工具,以及Java 1.8作为编程语言。下面将详细解释这三个...

    简单MyEclipse搭建SSH框架登录实例

    本实例将指导你如何在MyEclipse环境中搭建一个基于SSH的简单登录系统。 首先,你需要对以下几个方面有一定的基础: 1. **Java语言**:SSH框架是用Java语言开发的,所以对Java的熟悉程度是必要的。 2. **JSP页面**...

    zgf游戏框架搭建

    本文将详细介绍如何使用zgf.jar这个核心库来搭建一个简单但功能齐全的游戏开发框架。 首先,了解zgf框架的基本概念。ZGF,全称可能是“Zero Gravity Framework”,旨在提供一套轻量级、高效的游戏开发解决方案。它...

    向导 示例程序 框架

    总的来说,这个向导示例程序框架是一个实用的起点,帮助开发者以C#在VS2005环境下快速搭建具有向导功能的应用。其核心在于理解并掌握向导的逻辑结构和C#的事件驱动编程模型,结合具体业务需求进行定制,从而实现高效...

    MFC搭建简单上位机框架.zip

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来搭建一个简单的上位机框架。MFC 是 Microsoft 提供的一个 C++ 类库,它为开发 Windows 应用程序提供了一种方便的方式,尤其适用于构建桌面...

    简单的ssm框架

    在本"简单的SSM框架"项目中,你将了解到如何搭建一个基础的SSM环境并实现一个"Hello World"示例。下面我们将深入探讨SSM框架的核心组件及其作用。 1. **Spring框架**:Spring是整个SSM中的核心,它提供了一个容器来...

Global site tag (gtag.js) - Google Analytics