SSH全注解-annotation详细配置
如果有点SSH框架的经验,这个很好理解.配置不难.
配置annotation目的:省去庞大的.XML配置简化配置.其实这个annotation最近才流行的.我配置了几天,愁坏了...
这里写这篇博客就是方便下大家,给大家启示:
首先annotation是spring2.5的新功能.所以项目用Myeclipse里添加spring支持选择spring2.5.添加Hibernate的时候也要添加annotation需要的jar包,按步骤走就可以.需要特殊加的jar包有:struts2-convention-plugin-2.1.6.jar,hibernate-commons-annotations.jar.
web.xml的配置:
<!--Spring的装载器 --><listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!--spring的应用上下文 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <!-- struts2文件拦截器 --> <filter> <filter-name>struts2</filter-name> <filter-class>xx.servlet.web.MyStrutsFilterDispatcher</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>xx.bean,xx.dao,xx.quanxin.action</param-value> </init-param></filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation=" http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 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-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byType"><SPAN style="WHITE-SPACE: pre"><context:annotation-config/><context:component-scan base-package="*" /><aop:aspectj-autoproxy /> <tx:annotation-driven transaction-manager="transactionManager" /> </SPAN> <bean destroy-method="close"> <!-- 把连接重新放到连接池里 --> <!-- 添加连接池属性 --> <property name="driverClassName" value="${DB.driverClassName}"/> <property name="url" value="${DB.server}"/> <property name="username" value="${DB.username}"/> <property name="password" value="${DB.password}"/> <property name="initialSize" value="2" /> <!-- 初始连接数 --> <property name="maxActive" value="50"/> <!-- 连接池最大连接数 --> <property name="maxIdle" value="20"/> <!-- 最大的可空闲的连接数 --> <property name="minIdle" value="10"/> <!-- 最小的可空闲的连接数 --> <property name="logAbandoned" value="true" /> <!-- 超时后打印超时连接错误 --> <property name="removeAbandoned" value="true" /> <!-- 超时移除连接 --> <property name="removeAbandonedTimeout" value="300"/> <!-- 超时时间 --> <property name="maxWait" value="1000"/> <!-- 最大可以等待时间 --> <property name="defaultAutoCommit" value="true"/> <!-- 自动提交, --> </bean> <!-- 将dataSource注入到下面的sessionFactory类里 --> <bean id="sessionFactory" ref="dataSource"/> <property name="mappingResources"> <list> <value>xx/bean/UserInfo.hbm.xml</value> <value>xx/bean/Role.hbm.xml</value> </list> </property><!--通配符加载方式,暂未启用 <property name="mappingLocations"> <list><value>classpath:/jy/bean/*.hbm.xml</value> </list> </property>--><property name="hibernateProperties"> <!-- 这里是Properties列表 --><props><prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect </prop><prop key="hibernate.show_sql">true</prop> <!-- 显示sql --></props></property></bean><bean id="transactionManager"ref="sessionFactory" /></bean></beans>
@Repository("dao")public class PublicDaoImpl extends HibernateDaoSupport implements PublicDao { @Resource(name = "sessionFactory") public void setSuperSessionFactory(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } public void delete(Object obj) {this.getHibernateTemplate().delete(obj); }
@Service("base")@Transactionalpublic class BaseServiceImple implements BaseService {@Resource(name="dao")private PublicDao publicDao;public PublicDao getPublicDao() {return publicDao;}
import javax.annotation.Resource;import javax.servlet.http.HttpSession;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 org.apache.struts2.ServletActionContext;import org.springframework.stereotype.Controller;import xx.bean.UserInfo;import xx.service.*;import com.opensymphony.xwork2.ActionSupport;@Controller@Namespace("")@ParentPackage("default-package")public class UserinfoAction extends ActionSupport { @Resource(name="base")private BaseService baseService; @Action(value="/new",results={@Result(name="success",location="/index.jsp")})public String newUser() {UserInfo xx=new UserInfo();xx.setUserid("111");xx.setPassword("111");xx.setSfz("12121");this.baseService.save(xx);return SUCCESS;}