Spring+SpringMVC+Hibernate整合+入门笔记
2013-11-14 21:47
459 查看
新人自学SpringMVC,记录下学习心得,愿与众位分享。如有什么疏漏之处还望前辈们指教(求轻拍)
刚刚写了一篇日志,是写如何实现一个只有SpringMVC的项目的。现在这篇日志算是上一篇日志的续集,如果对SpringMVC一点也不了解的朋友请看我上一篇日志。上一篇日志链接——SpringMVC入门笔记
现在开始Spring+SpringMVC+Hibernate的整合
1.导入jar包
由于个人水平有限,没法像大神们一样精准的写出哪些jar包是干什么的,所以列出来的很多jar包可能是暂时用不到的。虽然臃肿点,不过导入这些jar包以后,项目是肯定能跑得起来的。
hibernate部分
![](https://img-blog.csdn.net/20131114210644015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpbXVzZW5zZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后是ojdbc6.jar
然后是Spring部分
![](https://img-blog.csdn.net/20131114210910703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpbXVzZW5zZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Spring部分除此之外还有:
aspectj-1.6.10.jar、aspectjweaver-1.6.9.jar、org.springframework.web.servlet-3.1.3.RELEASE.jar
aspectj开头的jar包是能让Spring管理事务的jar包
2.修改web.xml
这里的web.xml与上一篇日志的没变化,不过也列在这里方便大家看
3.添加applicationContext.xml
4.dao、service和action
dao和service接口的代码我就不贴出来了,就是简单地方法声明,其他什么也没有
dao的代码
service的代码
到此为止,启动项目以后,在地址栏中输入http://localhost:8080/springmvc11_14/testPath/testMethod/testA.action后可以成功跳转到success.jsp,而且也能成功的从数据库读取User集合。modify方法也试过了,可以成功修改数据,说明Spring自动管理事务没问题,能正常使用。
刚刚写了一篇日志,是写如何实现一个只有SpringMVC的项目的。现在这篇日志算是上一篇日志的续集,如果对SpringMVC一点也不了解的朋友请看我上一篇日志。上一篇日志链接——SpringMVC入门笔记
现在开始Spring+SpringMVC+Hibernate的整合
1.导入jar包
由于个人水平有限,没法像大神们一样精准的写出哪些jar包是干什么的,所以列出来的很多jar包可能是暂时用不到的。虽然臃肿点,不过导入这些jar包以后,项目是肯定能跑得起来的。
hibernate部分
然后是ojdbc6.jar
然后是Spring部分
Spring部分除此之外还有:
aspectj-1.6.10.jar、aspectjweaver-1.6.9.jar、org.springframework.web.servlet-3.1.3.RELEASE.jar
aspectj开头的jar包是能让Spring管理事务的jar包
2.修改web.xml
这里的web.xml与上一篇日志的没变化,不过也列在这里方便大家看
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>spring3mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 如果不写这个init标签及其内容,那么SpringMVC的相关配置就要写在 与<servlet-name>中的内容一致的xml里 --> <init-param> <param-name>contextConfigLocation</param-name> <!-- 这里是配置文件的路径 --> <param-value>classpath*:/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring3mvc</servlet-name> <!-- url-pattern里的内容的意思代表:告诉程序什么样格式的url地址才能算是action, 并往action里走。对于我这里写的*.action的话,当我输入类似于findAll.action 这样的url时,才会让程序开始寻找相应的action --> <url-pattern>*.action</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3.添加applicationContext.xml
<?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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 扫描com这个包里的所有类,把里面配上相应注解的类全都放在容器中进行管理 --> <context:component-scan base-package="com"/> <!-- 添加注解驱动 --> <mvc:annotation-driven /> <!-- 定义跳转的文件的前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <!-- 这里要根据自己用的什么数据库而变,我用的是oracle --> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@KEWPIE-HP:1521:KEWPIE</value> </property> <property name="username"> <value>数据库用户名</value> </property> <property name="password"> <value>密码</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <!-- 连接数据源 --> <ref bean="dataSource"/> </property> <!--注解形式的配置,只写包路径就可以了--> <property name="packagesToScan"> <list> <value>com.bean</value> </list> </property> <!-- 配置数据库方言 --> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> </bean> <!-- 从这开始就是开启事务的配置了 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <aop:config> <!-- 在这里,我将事务控制在service层,如果你想改,就改底下那个括号里的包名什么的吧 --> <aop:pointcut id="personDaoPC" expression = "execution(* com.service.impl.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="personDaoPC"/> </aop:config> <!-- 这个是我为了调试代码创建的一个dao --> <bean id="userDao" class="com.dao.impl.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean> </beans>
4.dao、service和action
dao和service接口的代码我就不贴出来了,就是简单地方法声明,其他什么也没有
dao的代码
package com.dao.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.bean.User; import com.dao.IUserDao; /** * 这里要注意,我继承了一个HibernateDaoSupport类,然后在Spring的配置文件中给这个类注入了一个 * sessionFactory。这是为了能得到Hibernate的Session对象 * @author 百木森森 * */ public class UserDaoImpl extends HibernateDaoSupport implements IUserDao { public List<User> findAll() { //这里的getSession()方法是继承自父类的方法 return this.getSession().createQuery("from User").list(); } public void modify(User user) { this.getSession().update(user); } }
service的代码
package com.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.bean.User; import com.dao.IUserDao; import com.service.IUserService; /** * service层我用的注解的方式配的,所以没写在Spring配置文件里 * @author 百木森森 * */ @Service("userService") public class UserServiceImpl implements IUserService { @Resource private IUserDao userDao; public List<User> findAll() { return this.userDao.findAll(); } public void modify(User user) { this.userDao.modify(user); } }action代码
package com.action; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.bean.User; import com.service.IUserService; /** * action层我也是用注解配的,这里面的注解@RequestMapping的具体作用见上一篇SpringMVC入门笔记 * @author 百木森森 * */ @Controller @RequestMapping("testPath") public class TestAction { @Resource private IUserService userService; @RequestMapping("testMethod/testA") public String test(){ System.out.println("进到了Action!"); List<User> list=this.userService.findAll(); for(User u:list){ System.out.println(u.getId()+","+u.getNickName()); } return "success"; } }
到此为止,启动项目以后,在地址栏中输入http://localhost:8080/springmvc11_14/testPath/testMethod/testA.action后可以成功跳转到success.jsp,而且也能成功的从数据库读取User集合。modify方法也试过了,可以成功修改数据,说明Spring自动管理事务没问题,能正常使用。
相关文章推荐
- Spring+SpringMVC+Hibernate整合+入门笔记
- Spring+SpringMVC+Hibernate整合+入门笔记
- Spring+SpringMVC+Hibernate整合笔记(一)项目结构与配置
- 我的笔记 Spring+SpringMVC+hibernate整合
- springmvc+hibernate+security整合笔记
- Maven学习笔记(十)-Maven整合SSHSJ(Spring+SpringMVC+Hibernate+Spring Data JPA+JdbcTemplate)框架
- Spring+SpringMVC+Mybatis框架整合例子(SSM) 学习笔记
- springmvc+hibernate+spring在maven中整合
- SpringMVC+Spring+Hibernate+Mybatis+Shiro等整合及开发(5)
- 框架篇:Spring+SpringMVC+hibernate整合开发
- java事务学习笔记(八)--分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
- 【学习笔记】SpringMvc+WebUploader整合处理
- Struts+Spring+Hibernate整合入门详解
- Spring+SpringMVC+Hibernate 与 shiro 整合步骤
- SSH网站开发实录(3)测试整合的SSH框架是否能用 SpringMVC+Spring+Hibernate
- ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(一)——准备工作
- SSH整合(Spring+SpringMVC+Hibernate)注解版
- SpringMVC+Hibernate+Spring整合实例(一)
- Spring mvc+struts2+Hibernate整合实例代码(注解详解)
- Spring+SpringMVC+Hibernate框架整合