- 浏览: 331540 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
di1984HIT:
谢谢,写的不错。
使用hector操作Cassandra -
mr_von:
非常感谢!
paoding的分词使用 -
howgoo:
http://www.dhtmlx.com/docs/prod ...
dhtmlxGrid分页与排序 -
青春的、脚步:
谢谢
spring-data-mongodb的MongoTemplate 使用小例子 -
青春的、脚步:
xiaofancn 写道青春的、脚步 写道这个能查询都个值在某 ...
spring-data-mongodb的MongoTemplate 使用小例子
web.xml配置请参考
http://xiaofancn.iteye.com/admin/blogs/986469
applicationContext.xml(我放在了WEB-INF目录下了)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- annotation on --> <context:annotation-config /> <context:component-scan base-package="org.snailteam"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/db?useUnicode=true&amp;amp;characterEncoding=UTF-8"> </property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> <property name="annotatedClasses"> <list> <value>model.Product</value> </list> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="*" read-only="false" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* org.snailteam.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" /> </aop:config> </beans>
struts.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> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.ognl.allowStaticMethodAccess" value="true" /> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.multipart.saveDir" value="d://" /> <constant name="struts.action.extension" value="do,action" /> <!-- 全局变量 --> <package name="global" namespace="/" extends="struts-default"> <global-results> <result name="error">/WEB-INF/pages/error.jsp</result> <result name="index">/index.jsp</result> <result name="adminLogin">/admin/login.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="error" exception="Exception"></exception-mapping> </global-exception-mappings> </package> </struts>
持久层类ProductDaoImpl.java
package org.snailteam.dao; import javax.annotation.Resource; import model.Product; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; @Repository("productDao") public class ProductDaoImpl implements ProductDao { private HibernateTemplate hibernateTemplate; @Resource(name = "hibernateTemplate") public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } public void save(Product p) { this.hibernateTemplate.save(p); } }
业务层ProductServiceImpl.java
package org.snailteam.service; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.annotation.Resource; import model.Product; import org.snailteam.dao.ProductDao; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @Service("productService") public class ProductServiceImpl implements ProductService{ private ProductDao dao; @Resource(name="productDao") public void setDao(ProductDao dao) { this.dao = dao; } //@Transactional(propagation=Propagation.REQUIRED,readOnly=true) public void add(Product p) { dao.save(p); } @PostConstruct//对象构造之后 public void init(){ } @PreDestroy//对象销毁之前 public void destroy(){ } }
表现层ProductAction.java
package org.snailteam.action; import javax.annotation.Resource; import model.Product; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.snailteam.service.ProductService; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @Controller("productBean") @Scope("prototype") @Namespace("/prod") @ParentPackage("global") @Results( { @Result(name = "success", location = "/index.jsp") }) public class ProductAction extends ActionSupport { private static final long serialVersionUID = 1L; private ProductService service; private Product prod; public String add() { service.add(prod); return SUCCESS; } public String execute() throws Exception { // TODO Auto-generated method stub return super.execute(); } @Resource(name = "productService") public void setService(ProductService service) { this.service = service; } public Product getProd() { return prod; } public void setProd(Product prod) { this.prod = prod; } }
测试代码
public class ProductActionTest { public static ProductAction action; @BeforeClass public static void setUpBeforeClass() throws Exception { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); action = (ProductAction) ac.getBean("productBean"); } @Test public void testSave() throws Exception { action.setProd(new Product("产品介绍信息")); System.out.println(action.add()); } }
发表评论
-
spring cloud gateway 全局过滤器。
2019-03-17 23:11 529spring cloud gateway 网关 ... -
elasticsearch 5.4搜索
2017-05-19 08:37 148@Test public void t ... -
netty简单的操作memcached
2017-04-19 18:59 980pom文件 <dependency> ... -
juc系列-Executor框架
2017-03-20 13:34 702转自 juc系列-Executor框架 什 ... -
ReentrantLock 类
2017-03-19 21:11 11.1 什么是reentrantlock java.u ... -
juc之CountDownLatch、CyclicBarrier和Semaphore例子
2017-03-19 17:23 835import java.util.concurren ... -
netty客户端与服务端例子
2017-03-12 20:07 2802package com.snailteam.nett ... -
freemaker集成spring
2017-02-26 19:00 568<bean id="freeMark ... -
spring集成Hessian插件配置改成自动注入。
2017-02-10 15:39 835原来的配置 <bean name="/ ... -
web开发模版
2017-02-09 14:42 0# Rules reminder: # DEBUG &l ... -
Java多线程
2017-02-04 14:39 515线程状态图 新建状态(New): ... -
hash冲突解决
2017-01-23 18:30 4581、开放地址法有一个公式: m是hash表长度,di ... -
mybatis +spring 分库
2015-04-30 17:56 353<context:component-scan b ... -
Java并发任务处理例子
2014-02-12 16:06 1130public void init() { su ... -
JAVA动态代理模式
2012-10-03 01:01 1187这是我要实现的效果 public static ... -
paoding的分词使用
2012-06-13 21:30 4867paoding下载 http://code.googl ... -
使用spring-hadoop操作hadoop
2012-05-20 02:12 32参考文章 http://blog.springsource. ... -
solr3.5集成paoding和位置搜索及对solrj的使用。
2012-04-28 02:12 1993http://xiaofancn.iteye.com/blog ... -
日期处理DateUtils
2012-03-24 09:47 4816import java.text.SimpleDateF ... -
Cassandra的数据分布情况测试
2012-03-16 15:09 20381、规划种子节点ip和Token值的对应 4个种子 ...
相关推荐
通过这种方式,S2SH整合Annotation可以极大地减少配置文件的体积,提高代码的可读性和维护性,同时也简化了开发流程。然而,注解并不是万能的,有时过度依赖注解可能会导致代码过于分散,不易于理解和管理。因此,在...
基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能
在本项目“s2sh_annotation.rar”中,开发者使用了注解的方式来配置这些框架,使得代码更加简洁,减少了XML配置文件的使用。 Struts2框架注解: Struts2通过Action和Result注解简化了Action类的配置。@Action注解...
【标题】"s2sh_annotation.rar_纯s2sh框架" 涉及的主要知识点是Struts2、Spring和Hibernate(简称S2SH)的整合应用,以及在该框架中的注解(Annotation)使用。 【描述】提到的是一个新人为了帮助其他初学者而创建...
总的来说,"S2SH整合基于Annotation"意味着在开发Java Web应用时,通过这三个主流框架的协同工作,结合Annotation,可以实现高效、灵活且易于维护的代码结构。这种整合方式在大型项目中非常常见,因为它能够提高开发...
【S2SH整合】指的是Struts2、Spring和Hibernate三个开源框架的集成应用。这是一个常见的Java Web开发技术栈,用于构建高效、灵活的企业级应用程序。Struts2提供了MVC架构,Spring提供了依赖注入和事务管理,...
Struts2SpingHibernate整合学习项目,实现注册功能,用Annotation注入,带jar包,引入工程就能用,用MySql实现,最适合于学习s2sh整合的朋友。千里之行,始于足下,同志们,我们一起努力吧
在这个基于Annotation并对DAO层封装具有分页功能的S2SH整合实例中,我们将探讨如何利用这些技术的特性来提高开发效率和代码可维护性。 首先,让我们深入了解一下Struts2。Struts2是基于MVC模式的开源Web应用框架,...
### 使用配置文件对DAO层封装具有分页功能的S2SH整合实例 #### 背景及概述 本文档旨在详细介绍如何使用配置文件的方式完成DAO层的封装,并在此基础上实现分页功能,最终达成S2SH(Struts、Spring、Hibernate)的...
本主题“s2sh框架整合学习之注解篇”主要聚焦于如何在S2SH框架整合中利用注解进行配置。首先,Struts2允许开发者通过注解来声明Action类及其方法,比如`@Action`用于标记Action类,`@Result`定义结果页面,`@Inject`...
【S2SH整合开发的小demo】是一个基于Struts2、Spring和Hibernate这三大框架集成的简单示例项目。S2SH是Java Web开发中的经典组合,它们分别负责表现层、控制层和数据持久化层的功能,共同构建了一个完整的MVC(Model...
### 使用Annotation并对DAO层封装具有分页功能的S2SH整合实例 #### 一、概述与背景 随着软件开发技术的不断进步,越来越多的技术趋势正在影响着开发模式的选择。其中,注解(Annotation)作为Java SE 5引入的一项...
本文将详细阐述如何整合S2SH(Struts2、Spring、Hibernate)框架,并介绍如何添加jar文件以及配置相关步骤。 首先,我们需要理解SSH框架的核心组件: 1. **Struts2**:作为前端控制器,负责处理HTTP请求,提供...
"毕业设计-学生成绩管理系统(基于annontation 的s2sh整合开发的完整实例)" 这个标题表明这是一个针对学生毕业设计的项目,主要目标是构建一个学生成绩管理系统。系统的核心开发技术是基于注解(Annotation)的Struts...
7. **开发环境**:进行S2SH整合开发通常需要Java开发工具(如Eclipse或IntelliJ IDEA)、构建工具(如Maven或Gradle)、数据库(如MySQL或Oracle)以及相关的IDE插件,以支持框架的集成和调试。 8. **测试与部署**...
在这个**S2SH_Annotation**项目案例中,开发者可能会学习到如何通过注解将这三个框架无缝集成。首先,Spring会作为整体的调度中心,使用注解管理Struts2的Action类和Hibernate的数据访问对象(DAO)。接着,Struts2...
S2SH框架是指整合了Struts2、Spring和Hibernate三大框架的技术架构,常用于企业级应用开发中。本文将详细介绍S2SH框架的快速搭建步骤,帮助开发者快速上手并构建高效稳定的应用系统。 #### 一、新建Web项目 在开发...
在本项目实战中,我们将深入探讨如何利用"Spring 2.5 + Struts 2 + Hibernate (S2SH)"框架,结合Direct Web Remoting (DWR) 和ExtJS技术,来构建一个基于注解(Annotation)的高效Web应用程序。这个实战涵盖了三个...