Tapestry+spring+hibernate基本架构
2007-03-27 17:45
323 查看
[align=center]Tapestry+spring+hibernate[/align]
[align=center] [/align]
1. 配置tapestry
1)Web.xml中配置tapestry’s servlet
[align=left]<servlet>[/align]
[align=left] <servlet-name>app</servlet-name>[/align]
[align=left] <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>[/align]
[align=left]</servlet>[/align]
[align=left] [/align]
[align=left]<servlet-mapping>[/align]
[align=left] <servlet-name>app</servlet-name>[/align]
[align=left] <url-pattern>/</url-pattern>[/align]
</servlet-mapping>
Servlet mapping is associate with the file of hivemodule.xml
Note:first u couldn’t add the tapestry-spring.jar
2)config application file
[align=left]<application>[/align]
[align=left] <metakey="org.apache.tapestry.messages-encoding"value="UTF-8"/>[/align]
[align=left]//encoding for tapestry[/align]
[align=left] <metakey="org.apache.tapestry.page-class-packages"value="tapestry"/>[/align]
[align=left]//html file is associate with java file in the “tapestry” package[/align]
</application>
And the application file name must be defined the same as the servlet-class name.if u dun do that,u must declare in the application file like this “<application name=’project name’>”
3)write your html file and java file
Home.html:
<input jwcid=”@insert” value=”ongl:name”>
Home.java:(must extends BasePage)
Public absact String getName();
Public abstact void setName(String name);
Note:absact is better for the project.
Now u can run and see!
2. hibernate+spring configuration
1)write a orm file---User.hbm.xml whatever u like(include a PK and
4000
name/pwd property).and also do a javabean for it.named User.java in domain package.
2)First add tapestry-spring.jar,and add under context into web.xml:
[align=left]<listener>[/align]
[align=left] <listener-class>[/align]
[align=left] org.springframework.web.context.ContextLoaderListener[/align]
[align=left] </listener-class>[/align]
[align=left] </listener>[/align]
[align=left] <context-param>[/align]
[align=left] <param-name>contextConfigLocation</param-name>[/align]
[align=left] <param-value>/WEB-INF/application.xml</param-value>[/align]
</context-param>
3)Then create application.xml file:
[align=left]<bean id="sessionFactory"[/align]
[align=left]class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">[/align]
[align=left] <property name="mappingResources">[/align]
[align=left] <list>[/align]
[align=left] <value>hibernate/User.hbm.xml</value>[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
[align=left] <property name="hibernateProperties">[/align]
[align=left] <props>[/align]
[align=left] <prop key="hibernate.connection.driver_class">[/align]
[align=left] oracle.jdbc.driver.OracleDriver[/align]
[align=left] </prop>[/align]
[align=left]//for oracle driver[/align]
[align=left] <prop key="hibernate.connection.url">[/align]
[align=left] jdbc:oracle:thin:@localhost:1521:jseps[/align]
[align=left] </prop>[/align]
[align=left] <prop key="hibernate.connection.username">web</prop>[/align]
[align=left] <prop key="hibernate.connection.password">web</prop>[/align]
[align=left] <prop key="hibernate.dialect">[/align]
[align=left] org.hibernate.dialect.Oracle9Dialect[/align]
[align=left] </prop>[/align]
[align=left] <prop key="hibernate.show_sql">true</prop>[/align]
[align=left] <prop key="hibernate.hbm2ddl.auto">update</prop>[/align]
[align=left]//is the key word for auto create table in database by itself.[/align]
[align=left] </props>[/align]
[align=left] </property>[/align]
</bean>
4)and u can create a service interface and impl class files,one is in service.interface package and another in service.impl package.
[align=left]publicinterface UserService {[/align]
[align=left] void create(User user);[/align]
[align=left] [/align]
[align=left] void update(User user);[/align]
[align=left] [/align]
[align=left] void delete(User user);[/align]
[align=left] [/align]
[align=left] Collection query();[/align]
[align=left] [/align]
[align=left] User load(Long id);[/align]
}
And UserServiceImpl.java must inject sessionFactory
[align=left]publicclass UserServiceImpl implements UserService {[/align]
[align=left] [/align]
[align=left] private SessionFactory sessionFactory; [/align]
[align=left] [/align]
[align=left] publicvoid setSessionFactory(SessionFactory sessionFactory) {[/align]
this.sessionFactory = sessionFactory;
[align=left] }[/align]
[align=left] [/align]
[align=left] publicvoid create(User user) {[/align]
[align=left]HibernateTemplate ht = new HibernateTemplate(this.sessionFactory);[/align]
[align=left] ht.save(user);[/align]
}
……………………………………………………….
}
Now u must add these into application.xml
[align=left] [/align]
[align=left]<bean id="userService" class="service.impl.UserServiceImpl">[/align]
[align=left] <property name="sessionFactory ref="sessionFactory">[/align]
[align=left]</property>[/align]
</bean>
[align=left]5) add a table on html[/align]
[align=left]<table cellpadding="0" cellspacing="0" class="grid" width="100%"[/align]
[align=left] jwcid="tableUser">[/align]
[align=left] <tr jwcid="@contrib:TableRows">[/align]
[align=left] <td jwcid="@contrib:TableValues" />[/align]
[align=left] </tr>[/align]
</table>
Then Home.java will change:
[align=left]@InjectObject("spring:userService")[/align]
[align=left] publicabstract UserManager getUserManager();[/align]
[align=left]//inject userService[/align]
[align=left] [/align]
[align=left]@Component(id = "tableUser", type = "contrib:Table", bindings = {"columns=literal:!name,!pwd","row=currUser", "source=userList"})[/align]
[align=left] publicabstract IComponent getTableUser();[/align]
[align=left]//for the tableUser component,see more on “http://tapestry.apache.org/tapestry4”[/align]
[align=left] [/align]
[align=left] public Collection getUserList(){[/align]
[align=left] returnthis.getUserManager().query();[/align]
[align=left] }[/align]
[align=left] //for source [/align]
[align=left] [/align]
[align=left] publicabstract User getCurrUser();[/align]
publicabstractvoid setCurrUser(User user);
. . . . . . . . . . . . .
To make use of this library, you must include its JAR on the classpath (typically, by copying it into WEB-INF/lib), and extend your application specification, and add a <library> element :
[align=left]<library id="contrib" specification-path="classpath:/org/apache/tapestry/contrib/[/align]
[align=left]Contrib.library"/>[/align]
[align=left] [/align]
[align=left] Now u can add some data in database,and run . . .see the list loaded from database![/align]
3. spring事务
define a form in new page---create.html
[align=left]<form jwcid="@Form">[/align]
[align=left] NAME:<input jwcid="@TextField" value="ognl:user.name"/>[/align]
[align=left] PWD:<input jwcid="@TextField" value="ognl:user.pwd" hidden="true"/>[/align]
[align=left] <input jwcid="save" value="save"/>[/align]
</form>
Add a method in create.java
[align=left]public String save(){[/align]
[align=left] getUserManager().create(getUser());[/align]
[align=left] return"Home";[/align]
}
//can return a string type
And add these in application.xml:
[align=left]<bean id="txMgr" class="org.springframework.orm.hibernate3.HibernateTransactionManager">[/align]
[align=left] <property name="sessionFactory">[/align]
[align=left] <ref bean="sessionFactory"/>[/align]
[align=left] </property>[/align]
[align=left] </bean>[/align]
[align=left] [/align]
[align=left] <!-- the txInterceptor bean will get auto-wrapped around all beans matched with the combination of "txAdvisor"+"txAutoProxyCreator" -->[/align]
[align=left] <bean id="txInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">[/align]
[align=left] <property name="transactionManager">[/align]
[align=left] <ref bean="txMgr"/>[/align]
[align=left] </property>[/align]
[align=left] <property name="transactionAttributes">[/align]
[align=left] <props>[/align]
[align=left] <prop key="*">PROPAGATION_REQUIRED</prop>[/align]
[align=left] </props>[/align]
[align=left] </property>[/align]
[align=left] </bean>[/align]
[align=left] [/align]
[align=left] <!-- the txAdvisor advises all matched methods in a given bean against its patterns with its interceptor -->[/align]
[align=left] <bean id="txAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">[/align]
[align=left] <property name="advice">[/align]
[align=left] <ref bean="txInterceptor"/>[/align]
[align=left] </property>[/align]
[align=left] <property name="patterns">[/align]
[align=left] <!-- the patterns must match *fully qualified* method names, hence the .* -->[/align]
[align=left] <list>[/align]
[align=left] <value>.*</value>[/align]
[align=left]<!—- 将.*的方法包括在TRANSACTION中 -->[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
[align=left] </bean>[/align]
[align=left] [/align]
[align=left] <!-- the txProxyAutoCreator automagically proxies all matched beans with its interceptors if they match any pointcuts -->[/align]
[align=left] <bean id="txProxyAutoCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">[/align]
[align=left] <property name="beanNames">[/align]
[align=left] <list>[/align]
[align=left] <!-- managers -->[/align]
[align=left] <value>*Manager</value>[/align]
[align=left] <value>*Service</value>[/align]
[align=left]<!—- 与以上命名的类文件匹配 -->[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
[align=left] <property name="interceptorNames">[/align]
[align=left] <list>[/align]
[align=left] <value>txAdvisor</value>[/align]
[align=left] </list>[/align]
[align=left] </property>[/align]
</bean>
相关文章推荐
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置
- Spring Boot + Jpa(Hibernate) 架构基本配置详解
- 【Java EE (Struts2 + Spring + Hibernate)开发】系列之 Spring(一)基本用法
- Spring+struts+hibernate的架构搭建步骤
- Spring+Struts2+Hibernate 架构分层原理说明
- HSSA总体架构(HSSA=Hibernate+Spring+Struts+Ajax)
- Tapestry+spring+hibernate整合使用时HQL语句问题!
- struts+spring+hibernate架构中数据对象(PO,POJO,FormBean)的使用心得
- struts 2+hibernate 3+spring基本套路小结
- spring-mvc基本架构-2
- spring-ibatis-Struts-Hibernate 架构图
- 【Java EE (Struts2 + Spring + Hibernate)开发】: Struts2(一)基本用法(待续)
- SpringMVC,Spring,Hibernate,Mybatis架构开发搭建之SpringMVC部分
- hibernate基本架构(3)
- 细谈Spring(七)spring+hibernate整合基本详解