springMVC、spring与Hibernate结合(具体需要hibernate的jar包还没有测试):
网上的是:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar包
首先在web.xml中设置如下:
- <!-- Spring MVC配置 -->
- <!-- ====================================== -->
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/spring-servlet.xml</param-value> 默认
- </init-param>
- -->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- <!-- Spring配置 -->
- <!-- ====================================== -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:config/applicationContext.xml</param-value>
- </context-param>
- <!-- 配置字符集 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置Session
OpenSessionViewFilter的主要功能是用来将一个Hibernate Session和一次完整的请求过程相绑定
-->
<filter>
<filter-name>openSession</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSession</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在spring-servlet.xml中设置如下(这儿不够完整):
<!-- 静态资源(js/image)的访问 js在webcontent下-->
<mvc:resources location="/js/" mapping="/js/**"/>
<!-- 直接指定视图名,无需自己编写controller -->
<bean name="/" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="login"/>
</bean>
- <!-- 启用spring mvc 注解 -->
- <context:annotation-config />
- <!-- 设置使用注解的类所在的jar包,要扫描的controller所在包-->
- <context:component-scan base-package="controller"></context:component-scan>
- <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />
在applicationContext.xml中设置如下(这儿不够完整):
- <!--切面配置,重点说一下环绕切面-->
- <!--切面类-->
<bean id="beforeAspect" class="com.neusoft.AOPTest"></bean>
<aop:config>
<!--声明一个切点, expression是个表达式-->
<aop:pointcut id="beforePointCut" expression="execution (* com.neusoft.service.impl.UserserviceImol.queryUserinfo())" />
<!--将切面与切点关联起来,下面的表明,环绕切面,执行切面类中的around方法 <aop:around表明是一个环绕切面-->
<!--常见的有<aop:beford <aop:after <aop:around相当于将前两者结合-->
<aop:aspect ref="beforeAspect">
<aop:around pointcut-ref="beforePointCut" method="around"/>
</aop:aspect>
</aop:config>
java代码:环绕切面
public void around(ProceedingJoinPoint joinpoint) {
try {
System.out.println("oooooooo环绕通知开始oooooooo");
joinpoint.proceed();
System.out.println("oooooooo环绕通知结束oooooooo");
} catch (Throwable t) {
System.out.println("Boo!Wewantourmoneyback!");
}
] - 对数据库的配置:可以写到另一个配置文件,在服务器启动的时候加载
- <!-- 配置数据源 oracle.jdbc.driver.OracleDriver com.p6spy.engine.spy.P6SpyDriver-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
<property name="username" value="username"></property>
<property name="password" value="password"></property>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<!--通过扫描-->
<property name="packagesToScan">
<list>
<value>com.tgb.entity</value>
</list>
</property>
<!--指定<property name="annotatedClasses">
<list>
<value>com.tgb.entity.User</value>
<value>com.tgb.entity.Child</value>
<value>com.tgb.entity.IDCard</value>
<value>com.tgb.entity.UserKey</value>
<value>com.tgb.entity.Friend</value>
</list>
</property> - -->
</bean>
<!-- 配置一个事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
这样三个框架基本就结合在了一起,到这里会出现几个配置文件:
web.xml-------------------------------------------------每个web项目都有,里面将sping MVC和sping两个框架整合到web项目中
spring-servlet.xml-----------------------------------对springMVC框架的配置
applicationContext.xml-----------------------------对spring框架的配置,这里面整合了hibernate框架,
hibernate.cfg.xml-----------------------------------对hibernate框架的配置。(如果如同上面一样配置了数据库,可以没有)
一些基本的注解:
spingMVC:
@Controller表示这是控制器。
@RequestMapping(params = "", method=RequestMethod.POST) 表示POST请求
@ResponseBody 表示放回值不进行视图映射,直接作为响应体中的内容返回,放回json或xml等时会用到
@RequestParam(value="username")在参数前面加,是指请求url地址映射中必须含有的参数(除非属性required=false)
spring:
@Resource(name = "")放在属性前面一种自动注入方式
hibernate:(一个例子)
@Entity
@Table(name="T_USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="user_seq")
@SequenceGenerator(name="user_seq", sequenceName="user_seq")
private Long id;
@Column
private String userName;
@Column
private String age;
@OneToOne(mappedBy = "user",cascade = {CascadeType.ALL},fetch = FetchType.LAZY)
private Child child;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL,fetch = FetchType.LAZY)//双向关联
private List<UserKey> userKeyList=new ArrayList<UserKey>();
@ManyToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JoinTable(name="t_user_friend",//自定义表??
joinColumns={@JoinColumn(name="userid")},//自定义列??
inverseJoinColumns={@JoinColumn(name="friendid")})//反转,和Teacher对应的那个表的列名,
private List<Friend> friendList=new ArrayList<Friend>();
相关推荐
springmvc学习笔记
个人学习spring框架时记录的笔记,纯手敲,SpringIOC+SpringMVC学习笔记,有兴趣的可以参考
SpringMVC学习笔记.md
SpringMVC是Java web开发中一个非常重要的框架,它基于模型-视图-控制器(Model-View-Controller)设计模式...这份“SpringMVC学习笔记”包括了从基础到进阶的全面内容,旨在帮助读者从零开始掌握SpringMVC的各个方面。
狂神说Java——SpringMVC学习笔记 内容概要: 1、了解什么是SpringMVC 2、RestFul和控制器 3、转发和重定向 4、数据处理 5、JSON 6、SSM项目整合 7、Ajax 8、拦截器+文件上传下载 能学到什么:详细了解SpringMVC基础...
**SpringMVC 学习笔记一** 在Java Web开发领域,SpringMVC是Spring框架的一个重要组成部分,它是一个用于构建Web应用程序的Model-View-Controller(MVC)框架。本学习笔记将深入探讨SpringMVC的基本概念、核心组件...
SpringMVC 学习笔记涵盖了从基础到高级的多个方面,如源码分析、实例代码、Maven 配置、Web.xml 配置以及注解驱动的编程。对于初学者来说,理解 SpringMVC 的工作流程至关重要。SpringMVC 的工作流程通常始于浏览器...
这个“springmvc学习笔记.zip”文件很可能包含了关于如何理解和使用SpringMVC的详细教程或个人学习记录。以下是一些核心知识点的详细说明: 1. **MVC架构**:MVC是一种设计模式,将应用程序分为三个主要组件:模型...
### SpringMVC学习课堂笔记知识点总结 #### 一、SpringMVC基础知识 ##### 1.1 什么是SpringMVC? SpringMVC是Spring框架的一部分,主要用于构建Web应用程序。它遵循了MVC(Model-View-Controller)设计模式,提供...
笔记全部以Markdown的形式记录,源码包含一个项目,可以非常便捷的帮助大家上手实践笔记中的知识点学习建议:本笔记为SSM框架一部分,大家可以优先学习Spring等框架,学习完成后在进行SpringMVC的学习系列所有笔记都...
总的来说,这份"SpringMVC学习笔记+学习源码.zip"资源涵盖了SpringMVC的基本概念、配置、控制器、数据绑定、异常处理、视图解析等多个方面的内容,对于初学者和有一定经验的开发者都是很好的学习资料。通过深入学习...
【标题】"mybatis,springmvc学习笔记"涵盖了两个核心的Java Web开发框架:MyBatis和Spring MVC。这两个框架在现代企业级应用中扮演着重要角色,它们各自解决了不同的问题,但通常会结合使用以构建高效、灵活的后端...
《黑马程序员SpringMVC课堂笔记》是一份详细记录了SpringMVC框架学习过程的资料,主要针对Java EE开发者,特别是那些希望通过黑马程序员的教程来提升自己SpringMVC技能的学员。SpringMVC作为Spring框架的重要组成...
**SpringMVC学习笔记(一)** 在Java Web开发领域,SpringMVC是Spring框架的一个重要组成部分,用于构建高效、可维护的Web应用程序。本文将深入探讨SpringMVC的基础概念、工作原理及其核心组件,帮助你更好地理解和...
在"springmvc学习笔记--springmvc注解开发.zip"这个压缩包中,我们可以深入探讨Spring MVC的注解驱动开发方式,这是一种简洁且高效的开发模式。 1. **Spring MVC基础**: Spring MVC的核心组件包括...
6、SpringMVC和Struts2的区别 第二天 1、高级参数绑定 a)数组类型的参数绑定 b)List类型的绑定 2、@RequestMapping注解的使用 3、Controller方法返回值 4、SpringMVC中异常处理 5、图片上传处理 6、Json数据交互 7...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的基本概念、...通过不断学习和实践,我们可以掌握SpringMVC的精髓,提升我们的开发技能。