搭建Spring

1.porm.xml中添加jar包

  1. <!-- spring3 -->
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-core</artifactId>
  5. <version>3.1.2.RELEASE</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-context</artifactId>
  10. <version>3.1.2.RELEASE</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.springframework</groupId>
  14. <artifactId>spring-jdbc</artifactId>
  15. <version>3.1.2.RELEASE</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-beans</artifactId>
  20. <version>3.1.2.RELEASE</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-web</artifactId>
  25. <version>3.1.2.RELEASE</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework</groupId>
  29. <artifactId>spring-expression</artifactId>
  30. <version>3.1.2.RELEASE</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.springframework</groupId>
  34. <artifactId>spring-orm</artifactId>
  35. <version>3.1.2.RELEASE</version>
  36. </dependency>

porm.xml

2.将spring.xml,log4j.proprtities,config.properities添加到项目当中

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
  3. http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/context
  6. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  7. ">
  8.  
  9. <!-- 引入属性文件 -->
  10. <context:property-placeholder location="classpath:config.properties" />
  11.  
  12. <!-- 自动扫描dao和service包(自动注入) -->
  13. <context:component-scan base-package="dao,service" />
  14.  
  15. </beans>

spring.xml

  1. log4j.rootLogger=INFO,A1,R
  2.  
  3. log4j.appender.A1=org.apache.log4j.ConsoleAppender
  4. log4j.appender.A1.Target=System.out
  5. log4j.appender.A1.layout=org.apache.log4j.PatternLayout
  6. log4j.appender.A1.layout.ConversionPattern=[%c]%m%n
  7.  
  8. log4j.appender.R=org.apache.log4j.RollingFileAppender
  9. log4j.appender.R.File=sshe.log
  10. log4j.appender.R.MaxFileSize=10MB
  11. log4j.appender.R.Threshold=ALL
  12. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  13. log4j.appender.R.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n

log4j.properities

  1. #hibernate.dialect=org.hibernate.dialect.OracleDialect
  2. #driverClassName=oracle.jdbc.driver.OracleDriver
  3. #validationQuery=SELECT 1 FROM DUAL
  4. #jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
  5. #jdbc_username=sshe
  6. #jdbc_password=sshe
  7.  
  8. hibernate.dialect=org.hibernate.dialect.MySQLDialect
  9. driverClassName=com.mysql.jdbc.Driver
  10. validationQuery=SELECT 1
  11. jdbc_url=jdbc:mysql://localhost:3306/tables?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
  12. jdbc_username=root
  13. jdbc_password=123
  14.  
  15. #hibernate.dialect=org.hibernate.dialect.SQLServerDialect
  16. #driverClassName=net.sourceforge.jtds.jdbc.Driver
  17. #validationQuery=SELECT 1
  18. #jdbc_url=jdbc:jtds:sqlserver://127.0.0.1:1433/sy
  19. #jdbc_username=sa
  20. #jdbc_password=123456
  21.  
  22. #jndiName=java:comp/env/dataSourceName
  23.  
  24. hibernate.hbm2ddl.auto=update
  25. hibernate.show_sql=false
  26. hibernate.format_sql=false
  27.  
  28. sessionInfoName=sessionInfo
  29.  
  30. uploadFieldName=filedata
  31. uploadFileMaxSize=20971520
  32. uploadFileExts=txt,rar,zip,doc,docx,xls,xlsx,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid
  33. uploadDirectory=attached

config.properities

3.测试

  1. package service.impl;
  2.  
  3. import org.springframework.stereotype.Service;
  4.  
  5. import service.UserServiceI;
  6.  
  7. @Service(value="userService")
  8. public class UserServiceImpl implements UserServiceI{
  9.  
  10. public void test(){
  11. System.out.println("ssss");
  12. }
  13. }

UserServiceImpl.java

  1. import org.junit.Test;
  2. import org.springframework.context.ApplicationContext;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. import service.UserServiceI;
  6.  
  7. public class SpringTest {
  8.  
  9. @Test
  10. public void test(){
  11. ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"classpath:spring.xml"});
  12. UserServiceI userService = (UserServiceI) ac.getBean("userService");
  13. userService.test();
  14. }
  15. }

SpringTest.java

4.配置web.xml(若在test环境下,则无须配置此处)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name></display-name>
  8. <welcome-file-list>
  9. <welcome-file>index.jsp</welcome-file>
  10. </welcome-file-list>
  11. <!-- spring配置文件位置 -->
  12. <context-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>classpath:spring.xml</param-value>
  15. </context-param>
  16. <!-- spring监听器 只有配置了监听器,我才能在web项目启动的过程中,把spring上下文启动-->
  17. <listener>
  18. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  19. </listener>
  20. </web-app>

web.xml

整合Spring+Struts2

1.porm.xml中添加jar

  1. <!-- struts2 -->
  2. <dependency>
  3. <groupId>org.apache.struts</groupId>
  4. <artifactId>struts2-core</artifactId>
  5. <version>2.3.4.1</version>
  6. <!-- <exclusions> <exclusion> <groupId>javassist</groupId> <artifactId>javassist</artifactId>
  7. </exclusion> </exclusions> -->
  8. </dependency>
  9. <dependency>
  10. <groupId>org.apache.struts</groupId>
  11. <artifactId>struts2-spring-plugin</artifactId>
  12. <version>2.3.4.1</version>
  13. </dependency>
  14. <dependency>
  15. <groupId>org.apache.struts</groupId>
  16. <artifactId>struts2-convention-plugin</artifactId>
  17. <version>2.3.4.1</version>
  18. </dependency>

porm.xml

2.web.xml中添加拦截器包

  1. <!-- spring监听器 只有配置了监听器,我才能在web项目启动的过程中,把spring上下文启动-->
  2. <listener>
  3. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  4. </listener>
  5. <!-- Struts2配置 -->
  6. <filter>
  7. <filter-name>struts2</filter-name>
  8. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  9. </filter>
  10. <filter-mapping>
  11. <filter-name>struts2</filter-name>
  12. <url-pattern>*.action</url-pattern>
  13. </filter-mapping>

web.xml

3.添加struts2.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
  3. <struts>
  4.  
  5. <!-- 指定由spring负责action对象的创建 -->
  6. <constant name="struts.objectFactory" value="spring" />
  7. <!-- 所有匹配*.action的请求都由struts2处理 -->
  8. <constant name="struts.action.extension" value="action" />
  9. <!-- 是否启用开发模式 -->
  10. <constant name="struts.devMode" value="true" />
  11. <!-- struts配置文件改动后,是否重新加载 -->
  12. <constant name="struts.configuration.xml.reload" value="true" />
  13. <!-- 设置浏览器是否缓存静态内容 -->
  14. <constant name="struts.serve.static.browserCache" value="false" />
  15. <!-- 请求参数的编码方式 -->
  16. <constant name="struts.i18n.encoding" value="utf-8" />
  17. <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
  18. <constant name="struts.i18n.reload" value="true" />
  19. <!-- 文件上传最大值 -->
  20. <constant name="struts.multipart.maxSize" value="104857600" />
  21. <!-- 让struts2支持动态方法调用 -->
  22. <constant name="struts.enable.DynamicMethodInvocation" value="true" />
  23. <!-- Action名称中是否还是用斜线 -->
  24. <constant name="struts.enable.SlashesInActionNames" value="false" />
  25. <!-- 允许标签中使用表达式语法 -->
  26. <constant name="struts.tag.altSyntax" value="true" />
  27. <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
  28. <constant name="struts.dispatcher.parametersWorkaround" value="false" />
  29.  
  30. <package name="basePackage" extends="struts-default">
  31.  
  32. </package>
  33.  
  34. </struts>

struts.xml

4.编写action测试

  1. package action;
  2.  
  3. import javax.servlet.ServletContext;
  4.  
  5. import org.apache.struts2.ServletActionContext;
  6. import org.apache.struts2.convention.annotation.Action;
  7. import org.apache.struts2.convention.annotation.Namespace;
  8. import org.apache.struts2.convention.annotation.ParentPackage;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.ApplicationContext;
  11. import org.springframework.web.context.WebApplicationContext;
  12. import org.springframework.web.context.support.WebApplicationContextUtils;
  13.  
  14. import service.UserServiceI;
  15.  
  16. @ParentPackage("basePackage")
  17. @Namespace("/")
  18. @Action(value="userAction")
  19. public class UserAction {
  20.  
  21. private UserServiceI userService;
  22.  
  23. public UserServiceI getUserService() {
  24. return userService;
  25. }
  26.  
  27. @Autowired
  28. public void setUserService(UserServiceI userService) {
  29. this.userService = userService;
  30. }
  31.  
  32. public void test(){
  33. //System.out.println("进入action");
  34. //ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(ServletActionContext.getServletContext());
  35. //UserServiceI u = (UserServiceI) ac.getBean("userService");
  36. //u.test();
  37. userService.test();
  38. }
  39. }

UserAction.java

整合Spring+Struts2+hibernate4

1.porm.xml中添加jar

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>sy.sshe</groupId>
  5. <artifactId>sshe</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <name />
  9. <description />
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <!-- <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId>
  15. <version>5.0-1</version> <scope>provided</scope> </dependency> <dependency>
  16. <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version>
  17. <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId>
  18. <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope>
  19. </dependency> -->
  20. <!-- junit -->
  21. <dependency>
  22. <groupId>junit</groupId>
  23. <artifactId>junit</artifactId>
  24. <version>4.11-beta-1</version>
  25. <scope>test</scope>
  26. </dependency>
  27. <!-- spring3 -->
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-core</artifactId>
  31. <version>3.1.2.RELEASE</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-context</artifactId>
  36. <version>3.1.2.RELEASE</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-jdbc</artifactId>
  41. <version>3.1.2.RELEASE</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework</groupId>
  45. <artifactId>spring-beans</artifactId>
  46. <version>3.1.2.RELEASE</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.springframework</groupId>
  50. <artifactId>spring-web</artifactId>
  51. <version>3.1.2.RELEASE</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>org.springframework</groupId>
  55. <artifactId>spring-expression</artifactId>
  56. <version>3.1.2.RELEASE</version>
  57. </dependency>
  58. <dependency>
  59. <groupId>org.springframework</groupId>
  60. <artifactId>spring-orm</artifactId>
  61. <version>3.1.2.RELEASE</version>
  62. </dependency>
  63. <!-- struts2 -->
  64. <dependency>
  65. <groupId>org.apache.struts</groupId>
  66. <artifactId>struts2-core</artifactId>
  67. <version>2.3.4.1</version>
  68. <exclusions>
  69. <exclusion>
  70. <groupId>javassist</groupId>
  71. <artifactId>javassist</artifactId>
  72. </exclusion>
  73. </exclusions>
  74. </dependency>
  75. <dependency>
  76. <groupId>org.apache.struts</groupId>
  77. <artifactId>struts2-spring-plugin</artifactId>
  78. <version>2.3.4.1</version>
  79. </dependency>
  80. <dependency>
  81. <groupId>org.apache.struts</groupId>
  82. <artifactId>struts2-convention-plugin</artifactId>
  83. <version>2.3.4.1</version>
  84. </dependency>
  85. <!-- servlet -->
  86. <dependency>
  87. <groupId>javax.servlet</groupId>
  88. <artifactId>servlet-api</artifactId>
  89. <version>2.5</version>
  90. <scope>provided</scope>
  91. </dependency>
  92. <!-- hibernate4 -->
  93. <dependency>
  94. <groupId>org.hibernate</groupId>
  95. <artifactId>hibernate-core</artifactId>
  96. <version>4.1.7.Final</version>
  97. </dependency>
  98. <!-- log4j -->
  99. <dependency>
  100. <groupId>log4j</groupId>
  101. <artifactId>log4j</artifactId>
  102. <version>1.2.17</version>
  103. </dependency>
  104. <!-- aspectjweaver -->
  105. <dependency>
  106. <groupId>org.aspectj</groupId>
  107. <artifactId>aspectjweaver</artifactId>
  108. <version>1.7.0</version>
  109. </dependency>
  110. <!-- druid -->
  111. <dependency>
  112. <groupId>com.alibaba</groupId>
  113. <artifactId>druid</artifactId>
  114. <version>0.2.8</version>
  115. </dependency>
  116. <dependency>
  117. <groupId>mysql</groupId>
  118. <artifactId>mysql-connector-java</artifactId>
  119. <version>5.1.21</version>
  120. </dependency>
  121. </dependencies>
  122. <build>
  123. <plugins>
  124. <plugin>
  125. <!-- <groupId>org.apache.maven.plugins</groupId> <version>3.0.0</version> -->
  126. <artifactId>maven-war-plugin</artifactId>
  127. </plugin>
  128. <plugin>
  129. <artifactId>maven-compiler-plugin</artifactId>
  130. <configuration>
  131. <source>1.6</source>
  132. <target>1.6</target>
  133. </configuration>
  134. </plugin>
  135. <plugin>
  136. <groupId>org.apache.maven.plugins</groupId>
  137. <artifactId>maven-surefire-plugin</artifactId>
  138. <version>2.7.2</version>
  139. <configuration>
  140. <argLine></argLine>
  141. </configuration>
  142. </plugin>
  143. <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>
  144. <version>2.4.2</version> <configuration> <skipTests>true</skipTests> </configuration>
  145. </plugin> -->
  146. </plugins>
  147. </build>
  148. </project>

porm.xml

2.添加spring-hibernate.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="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" xsi:schemaLocation="
  3. http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/tx
  6. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  7. http://www.springframework.org/schema/aop
  8. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  9. ">
  10.  
  11. <!-- JNDI方式配置数据源 -->
  12. <!-- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="${jndiName}"></property> </bean> -->
  13.  
  14. <!-- 配置数据源 -->
  15. <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  16. <property name="url" value="${jdbc_url}" />
  17. <property name="username" value="${jdbc_username}" />
  18. <property name="password" value="${jdbc_password}" />
  19.  
  20. <!-- 初始化连接大小 -->
  21. <property name="initialSize" value="0" />
  22. <!-- 连接池最大使用连接数量 -->
  23. <property name="maxActive" value="20" />
  24. <!-- 连接池最大空闲 -->
  25. <property name="maxIdle" value="20" />
  26. <!-- 连接池最小空闲 -->
  27. <property name="minIdle" value="0" />
  28. <!-- 获取连接最大等待时间 -->
  29. <property name="maxWait" value="60000" />
  30.  
  31. <!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
  32.  
  33. <property name="validationQuery" value="${validationQuery}" />
  34. <property name="testOnBorrow" value="false" />
  35. <property name="testOnReturn" value="false" />
  36. <property name="testWhileIdle" value="true" />
  37.  
  38. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  39. <property name="timeBetweenEvictionRunsMillis" value="60000" />
  40. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  41. <property name="minEvictableIdleTimeMillis" value="25200000" />
  42.  
  43. <!-- 打开removeAbandoned功能 -->
  44. <property name="removeAbandoned" value="true" />
  45. <!-- 1800秒,也就是30分钟 -->
  46. <property name="removeAbandonedTimeout" value="1800" />
  47. <!-- 关闭abanded连接时输出错误日志 -->
  48. <property name="logAbandoned" value="true" />
  49.  
  50. <!-- 监控数据库 -->
  51. <!-- <property name="filters" value="stat" /> -->
  52. <property name="filters" value="mergeStat" />
  53. </bean>
  54.  
  55. <!-- 配置hibernate session工厂 -->
  56. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  57. <property name="dataSource" ref="dataSource" />
  58. <property name="hibernateProperties">
  59. <props>
  60. <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
  61. <prop key="hibernate.dialect">${hibernate.dialect}</prop>
  62. <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
  63. <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
  64. </props>
  65. </property>
  66.  
  67. <!-- 自动扫描注解方式配置的hibernate类文件 -->
  68. <property name="packagesToScan">
  69. <list>
  70. <value>sy.model</value>
  71. </list>
  72. </property>
  73.  
  74. <!-- 自动扫描hbm方式配置的hibernate文件和.hbm文件 -->
  75. <!--
  76. <property name="mappingDirectoryLocations">
  77. <list>
  78. <value>classpath:sy/hbm</value>
  79. </list>
  80. </property>
  81. -->
  82. </bean>
  83.  
  84. <!-- 配置事务管理器 事务一般都配置在service层,而不是dao -->
  85. <bean name="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  86. <property name="sessionFactory" ref="sessionFactory"></property>
  87. </bean>
  88.  
  89. <!-- 注解方式配置事物 -->
  90. <!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->
  91.  
  92. <!-- 拦截器方式配置事物 -->
  93. <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
  94. <tx:attributes>
  95. <tx:method name="add*" />
  96. <tx:method name="save*" />
  97. <tx:method name="update*" />
  98. <tx:method name="modify*" />
  99. <tx:method name="edit*" />
  100. <tx:method name="delete*" />
  101. <tx:method name="remove*" />
  102. <tx:method name="repair" />
  103. <tx:method name="deleteAndRepair" />
  104.  
  105. <tx:method name="get*" propagation="SUPPORTS" />
  106. <tx:method name="find*" propagation="SUPPORTS" />
  107. <tx:method name="load*" propagation="SUPPORTS" />
  108. <tx:method name="search*" propagation="SUPPORTS" />
  109. <tx:method name="datagrid*" propagation="SUPPORTS" />
  110.  
  111. <tx:method name="*" propagation="SUPPORTS" />
  112. </tx:attributes>
  113. </tx:advice>
  114. <aop:config>
  115. <aop:pointcut id="transactionPointcut" expression="execution(* sy.service..*Impl.*(..))" />
  116. <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
  117. </aop:config>
  118.  
  119. </beans>

spring-hibernate.xml

3.配置web.xml

  1. <!-- spring配置文件位置 -->
  2. <context-param>
  3. <param-name>contextConfigLocation</param-name>
  4. <param-value>classpath:spring.xml,classpath:spring-hibernate.xml</param-value>
  5. </context-param>

web.xml

4.测试

4.1添加UserDao及UserDaoImpl

  1. package dao.impl;
  2.  
  3. import java.io.Serializable;
  4.  
  5. import model.Tuser;
  6.  
  7. import org.hibernate.SessionFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Repository;
  10.  
  11. import dao.UserDaoI;
  12.  
  13. @Repository("userDao")
  14. public class UserDaoImpl implements UserDaoI {
  15.  
  16. private SessionFactory sessionFactory;
  17.  
  18. public SessionFactory getSessionFactory() {
  19. return sessionFactory;
  20. }
  21.  
  22. @Autowired
  23. public void setSessionFactory(SessionFactory sessionFactory) {
  24. this.sessionFactory = sessionFactory;
  25. }
  26.  
  27. @Override
  28. public Serializable save(Tuser user) {
  29. // 因为事务交给了spring来管理,spring就会在使用(eg:save)前自行open一个session,save之后自动关闭session
  30. //因为事务配置在了service层,所以这里是不可以opensession的,但是可以getcurrentsession
  31. return this.getSessionFactory().getCurrentSession().save(user);
  32. }
  33.  
  34. }

UserDaoImpl

4.2在UserServiceImpl中添加save方法

  1. package service.impl;
  2.  
  3. import java.io.Serializable;
  4.  
  5. import model.Tuser;
  6.  
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9.  
  10. import dao.UserDaoI;
  11.  
  12. import service.UserServiceI;
  13.  
  14. @Service(value="userService")
  15. public class UserServiceImpl implements UserServiceI{
  16.  
  17. private UserDaoI userDao ;
  18.  
  19. public UserDaoI getUserDao() {
  20. return userDao;
  21. }
  22.  
  23. @Autowired
  24. public void setUserDao(UserDaoI userDao) {
  25. this.userDao = userDao;
  26. }
  27.  
  28. public void test(){
  29. System.out.println("ssss");
  30. }
  31.  
  32. @Override
  33. public Serializable save(Tuser t) {
  34. // TODO Auto-generated method stub
  35. return userDao.save(t);
  36. }
  37. }

UserServiceImpl

4.3添加UserAction添加addUser方法

  1. package action;
  2.  
  3. import java.util.Date;
  4. import java.util.UUID;
  5.  
  6. import model.Tuser;
  7.  
  8. import org.apache.struts2.convention.annotation.Action;
  9. import org.apache.struts2.convention.annotation.Namespace;
  10. import org.apache.struts2.convention.annotation.ParentPackage;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12.  
  13. import service.UserServiceI;
  14.  
  15. @ParentPackage("basePackage")
  16. @Namespace("/")
  17. @Action(value="userAction")
  18. public class UserAction {
  19.  
  20. private UserServiceI userService;
  21.  
  22. public UserServiceI getUserService() {
  23. return userService;
  24. }
  25.  
  26. @Autowired
  27. public void setUserService(UserServiceI userService) {
  28. this.userService = userService;
  29. }
  30.  
  31. public void test(){
  32. //System.out.println("进入action");
  33. //ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(ServletActionContext.getServletContext());
  34. //UserServiceI u = (UserServiceI) ac.getBean("userService");
  35. //u.test();
  36. userService.test();
  37. }
  38.  
  39. public void addUser(){
  40. Tuser t = new Tuser();
  41. t.setId(UUID.randomUUID().toString());
  42. t.setName("林志玲");
  43. t.setPwd("12345");
  44. t.setCreatdatetime(new Date());
  45. userService.save(t);
  46. }
  47. }

UserAction

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:等线;
mso-ascii-font-family:等线;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:等线;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:等线;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

spring+struts2+hibernate框架搭建(Maven工程)的更多相关文章

  1. 简单Spring+Struts2+Hibernate框架搭建

    使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  2. Spring+Struts2+Hibernate框架搭建

    SSH框架版本:Struts-2.3.30  +  Spring-4.2.2  +  Hibernate5.2.2 下图是所需要的Jar包: 下面是项目的结构图: 1.web.xml <?xml ...

  3. 在Eclipse中使用Struts和Hibernate框架搭建Maven Web项目

    前言 学习使用Java还是2012年的事情,刚开始学习的Java的时候,使用的是MyEclipse工具和SSH框架.初学者适合使用MyEclipse,因为他将struts.Spring和Hiberna ...

  4. Spring+Struts2+Hibernate框架整合流程

    一:基本步骤 新建Maven项目,导入相关依赖(推荐) 在WEB-INF的web.xml中进行配置 ————–Hibernate配置 —————- 创建entity包,创建数据库相关实体类 根据实体类 ...

  5. Spring+Spring MVC+Hibernate框架搭建实例

    前言:这里只是说明整个搭建流程,并不进行原理性的讲解 一 下面所需要用到的数据库配置: 数据库方面,使用mysql创建一个users表,具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  6. 【Spring】Spring+struts2+Hibernate框架的搭建

    1.搭建过程 首先需要引入Spring.Struts2.Hibernate的开发包,已经数据库的驱动包. UserAction.java文件 package cn.shop.action; impor ...

  7. Spring+Struts2+Mybatis框架搭建时的常见典型问题

    搭建SSM框架时,总是遇到这样那样的问题,有的一眼就能看出来,有的需要经验的积累.现将自己搭建SSM框架时遇到的典型问题总结如下: 一.Struts2框架下的action中无法使用@Autowired ...

  8. ssh (Spring , Struts2 , Hibernate)框架的配置使用

    思维导图(基本配置) 1. 需要引入的包 2 .spring-config.xml 的配置 <!-- 链接数据库 外部配置文件扫入 --> <context:property-ove ...

  9. spring+struts2+hibernate框架依赖pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. Docker Compose 简介

    Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用.使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建 ...

  2. Java提高班(二)深入理解线程池ThreadPool

    本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高级内容,读者可根据 ...

  3. JS的forEach和map方法的区别

    一.前言 forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each() ...

  4. .Net语言 APP开发平台——Smobiler学习日志:如何在手机中调用邮件发送接口

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 二.发送邮件代码 VB: Pr ...

  5. 第54章 身份资源 - Identity Server 4 中文文档(v1.0.0)

    此类为身份资源建模. Enabled 指示此资源是否已启用且可以请求.默认为true. Name 标识资源的唯一名称.这是客户端将用于授权请求中的scope参数的值. DisplayName 该值将用 ...

  6. .Net 使用爬虫下载网络图片到本地磁盘

    准备: 1.新建控制台项目 2.引用System.Drawing类库 3.安装HtmlAgilityPack 1.5.2.0 4.如果不会XPath语法的话,建议简单看下 代码: static voi ...

  7. MySQL 笔记整理(9) --普通索引和唯一索引,应该怎么选择?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 9) --普通索引和唯一索引,应该怎么选择? 假如你在维护一个市民系统, ...

  8. laravel项目thinksns-plus安装出现RuntimeException Symlink from * to * failed错误

    今天xshell安装thinksns-plus的laravel项目时出现了一个错误, [RuntimeException] Symlink from "/root/www.z5w.net/t ...

  9. 记录 FTPClient 超时处理的相关问题

    apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具. 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各 ...

  10. arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...