所谓的框架:就是把一些常用的功能封装好,省去重复的开发;
损失惨重啊,一个不小心,把硬盘分区表丢了,以前的数据全丢了,重头来,做个框架出来,留着以后用吧。
预计的功能:
- 用户管理
- 组织机构管理
- 模块管理
- 权限管理
- 工作流,jbpm,
- cxf服务
- oscache缓存
struts
(一)jar包
1.xwork-core-2.3.1.1.jar
2.struts2-json-plugin-2.3.1.1.jar
3.struts2-core-2.3.1.1.jar
4.struts2-convention-plugin-2.3.1.1.jar
5.struts2-config-browser-plugin-2.3.1.1.jar
6.ognl-3.0.3.jar
7.javassist-3.11.0.GA.jar
8.freemarker-2.3.18.jar
9.commons-logging-api-1.1.jar
10.commons-lang-2.5.jar
11.commons-io-2.0.1.jar
12.commons-fileupload-1.2.2.jar
13.asm-commons-3.3.jar
14.asm-3.3.jar
说明:
struts2-convention-plugin-2.3.1.1.jar为struts零配置所需的包;
struts2-config-browser-plugin-2.3.1.1.jar为struts协助开发需要的包:可以输入http://127.0.0.1:8686/config-browser/actionNames.action查看系统所有已经存在的action,配置不正确就可以在这里看出来;
freemarker-2.3.18.jar:模板需要的支持包;
struts2-json-plugin-2.3.1.1.jar:json插件包
(二)配置文件
/src/default.properties
struts.i18n.reload = true
struts.devMode = true
struts.configuration.xml.reload = false
# struts.custom.i18n.resources = globalMessages
struts.action.extension = action,act,
struts.convention.package.locators.basePackage = com.gwtjs.struts.action
# struts.convention.action.packages = com.gwtjs.struts.action
## struts.Convention.exclude.packages = com.gwtjs.struts.action
struts.convention.action.suffix = Action
struts.convention.result.path = /
struts.convention.action.mapAllMatches=true
# struts.objectFactory = spring
|
web.xml
<!-- filter group -->
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
|
|
<listener>
<listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>
</listener>
|
(三)测试
/struts/TestAction.java
public class TestAction extends ActionSupport {
private static final long serialVersionUID = -7938509668708524339L;
private String result;
@Override
public String execute() throws Exception {
result = "action success";
return SUCCESS;
}
public String getResult() {
return result;
}
}
|
/src/struts.xml
<package name="com.gwtjs.test" extends="struts-default" namespace="/test">
<action name="test1" class="com.gwtjs.struts.TestAction">
<result name="success">/test-content/test1.jsp</result>
</action>
</package>
|
/web/test-content/test1.jsp
<%@ taglib prefix="ss" uri="/struts-tags" %>
<body>
<h2><ss:property value="result"/></h2>
</body>
|
以上是有配置文件的测试,以下是无配置action测试
struts2-convention 测试、JSON返回测试:
ConventionTestAction.java
|
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("json-default") @Namespace(value="/test")
public class ConventionTestAction extends ActionSupport {
private static final long serialVersionUID = 7250554290060921960L;
public String success = "true";
public List<String> list = new ArrayList<String>();
@Override @Action(value="test2",results={@Result(name="success",type="json")})
public String execute() throws Exception {
return SUCCESS;
}
|
Freemarker返回测试:
Web.xml
|
<servlet>
<servlet-name>sitemesh-freemarker</servlet-name>
<servlet-class>org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</servlet-class>
<init-param>
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sitemesh-freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
|
|
Struts.xml
|
<action name="test3" class="com.gwtjs.struts.TestAction" method="freeTest">
<result name="success" type="freemarker">/test-content/test1.ftl</result>
</action>
|
|
Test.java
|
public String freeTest() throws Exception {
result = "freemarker action success";
return SUCCESS;
}
|
|
Test.ftl
|
${result}
|
spring + hibernate
(一)jar包
增加spring 和Hibernate让我小折腾了一下,既然是新配置框架,就全用最新的,Hibernate我用的4.x,Spring 用的是3.1 ;Hibernate4.x的包是加进去了,但数据源配置等,还是用的3.x的,所以,狂报错,最后把hibernate3改成hibernate4就可以了,具体有两个地方需要调整:
第一个就是:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
第二个:
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
完整配置文件,下面会贴出来。
Hibernate的jar包还是差不多,把hibernate-release-4.0.1.Final\lib\required目录的jar 包,还有c3p0加进去;
spring就稍麻烦点:
org.springframework.aop-3.1.0.RELEASE.jar
org.springframework.asm-3.1.0.RELEASE.jar
org.springframework.aspects-3.1.0.RELEASE.jar
org.springframework.beans-3.1.0.RELEASE.jar
org.springframework.context-3.1.0.RELEASE.jar
org.springframework.core-3.1.0.RELEASE.jar
org.springframework.expression-3.1.0.RELEASE.jar
org.springframework.instrument-3.1.0.RELEASE.jar
org.springframework.jdbc-3.1.0.RELEASE.jar
org.springframework.jms-3.1.0.RELEASE.jar
org.springframework.orm-3.1.0.RELEASE.jar
org.springframework.oxm-3.1.0.RELEASE.jar
org.springframework.transaction-3.1.0.RELEASE.jar
org.springframework.web-3.1.0.RELEASE.jar
另外还有
ojdbc14.jar -- oracle数据库驱动
mysql-connector-java-5.1.8-bin.jar -- mysql驱动
aopalliance-1.0.jar
aspectjweaver.jar
asm-commons-3.3.jar
及spring测试需要的:
org.springframework.test-3.1.0.RELEASE.jar
可能还缺包,不过小事,这个时候缺包会有明确的提示的:一般都是NoClassDefFoundError: XXX按名称添加就可以了,详细稍后上传;
(一)Spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- ============================================== -->
<!-- =========== Spring 公用配置 =================== -->
<!-- ============================================== -->
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:com/gwtjs/config/hibernate.properties</value>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 安全的路径jdbc:mysql://127.0.0.1:3306/va66?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8 -->
<property name="jdbcUrl" value="${hibernate.connection.url}" />
<property name="driverClass" value="${hibernate.connection.driver_class}" />
<property name="user" value="${hibernate.connection.username}" />
<property name="password" value="${hibernate.connection.password}" />
<property name="acquireIncrement" value="${c3p0.acquireIncrement}" />
<property name="initialPoolSize" value="${c3p0.initialPoolSize}" />
<property name="minPoolSize" value="${c3p0.minPoolSize}" />
<property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
<property name="maxStatements" value="${c3p0.maxStatements}" />
<property name="numHelperThreads" value="${c3p0.numHelperThreads}" />
<property name="maxIdleTime" value="${c3p0.maxIdleTime}" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<!--<property name="mappingResources">
<list>
<value>com/gwtjs/model/ACL.hbm.xml</value>
</list>
</property>
--><property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
<prop key="hibernate.autoReconnect">true</prop>
<prop key="hibernate.use_sql_comments">false</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" no-rollback-for="java.lang.Throwable" />
<!-- <tx:method name="*" read-only="true" /> -->
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.gwtjs.dao.impl.*.*(..))"
advice-ref="txAdvice" />
</aop:config>
<context:annotation-config />
<context:component-scan base-package="com.gwtjs" />
</beans>
|
|
hibernate.properties
|
######################
### Query Language ###
######################
## define query language constants / function names
hibernate.query.substitutions yes 'Y', no 'N'
hibernate.show_sql true
## select the classic query parser
#hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory
## MySQL
hibernate.dialect org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc\:mysql\://127.0.0.1\:3306/NewTest
hibernate.connection.username root
hibernate.connection.password 860748
## Oracle
## hibernate.dialect org.hibernate.dialect.OracleDialect
## hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
## hibernate.connection.username FoundationDB
## hibernate.connection.password FoundationDBPwd
## hibernate.connection.url jdbc:oracle:thin:@localhost:1521:orcl
## set the maximum depth of the outer join fetch tree
hibernate.connection.pool_size 1
hibernate.proxool.pool_alias pool1
hibernate.format_sql false
## add comments to the generated SQL
hibernate.use_sql_comments true
## set the maximum depth of the outer join fetch tree
hibernate.max_fetch_depth 1
hibernate.jdbc.batch_versioned_data true
hibernate.jdbc.use_streams_for_binary true
hibernate.cache.region_prefix hibernate.test
hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider
c3p0.acquireIncrement=3
c3p0.idleConnectionTextPeriod=900
c3p0.minPoolSize=2
c3p0.maxPoolSize=50
c3p0.maxStatements=100
c3p0.numHelperThreads=10
c3p0.maxIdleTime=600
c3p0.initialPoolSize=3
|
(二)web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-config.xml
</param-value>
</context-param>
|
|
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
|
这就是所谓的SSH框架了
测试待续,,,,,,
其它待续,,,,,,
未完...
分享到:
相关推荐
spring 3.2.0+hibernate 4.1.6+struts2整合需要的jar包 的目录 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar asm-commons-3.3.jar aspectjweaver-1.5.3.jar bonecp-0.7.1.RELEASE.jar cglib-2.1.3.jar ...
本人的此jar合集只能保证SSH2的基础环境,至于更复杂的功能,可能此集合已经包含,或者您可以从您下载的Spring或者hibernate或者struts中寻找您需要的jar包,按要求添加即可。 【因本人能力有限,不能保证此jar集合...
linux使用,使用教程 linux下安装rpc.rstatd 1.rpc服务需rsh的支持,一般情况...执行以下命令解压和安装 tar zxvf rpc.rstatd-4.0.1.tar.gz cd rpc.rstatd-4.0.1 ./configure //配置 make //编译 make install //安装 4
本人的此jar合集只能保证SSH2的基础环境,至于更复杂的功能,可能此集合已经包含,或者您可以从您下载的Spring或者hibernate或者struts中寻找您需要的jar包,按要求添加即可。 【因本人能力有限,不能保证此jar集合...
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
hibernate-commons-annotations-4.0.1.Final.jar
orm-3.2.6.RELEASE.jar spring-tx-3.2.6.RELEASE.jar spring-web-3.2.6.RELEASE.jar spring-webmvc-3.2.6.RELEASE.jar struts2-convention-plugin-2.3.4.jar struts2-core-2.3.4.1.jar struts2-spring-plugin-2.3....
nagios-4.0.1.tar.gz nagios-4.0.1.tar.gz nagios-4.0.1.tar.gz
spring-framework-4.0.1.RELEASE官方完整包加官方文档
zend.Guard.4.0.1.破解版].Zend.Guard.v4.0.1.CRACKED
hibernate-validator-4.0.1.GA-dist
spring-framework-4.0.1.RELEASE spring参考文档以及api (英文)
spring4.0.1 springMVC jpa2.0 hibernate4.3.7 框架整合
Spring3.2.5Hibernate4.0.1Integration 完整範例 相當值得參考
spring-framework-4.0.1.RELEASE.rar帮助文档4.0版本spring-framework-4.0.1.RELEASE.rar帮助文档4.0版本
将压缩文件 redis-4.0.1.tar.gz放到虚拟机上 执行命令 tar -zxvf redis-4.0.1.tar.gz 解压到当前文件夹下 进入redis文件夹下 cd redis-4.0.1 依次执行 make sudo make install 安装完成 2、后台启动服务器: ...
hibernate4.0.1 struts2 帮助文档。 共享资料
Fudamentals.TLS.4.0.1
rarlinux-4.0.1.tar.gz
ES文件浏览器app是一款十分不错的手机文件管理软件,该软件完全是可以帮用户们管理文件,并且上传以及下载文件信息都是非常的方便,致力为用户们提供十分优质的服务。 用户们完全是可以通过这个软件在本地、蓝牙设备...