框架学习之spring整合hibernate、struts2框架-01基础配置

来源:互联网 发布:终极算法 pdf 编辑:程序博客网 时间:2024/06/05 11:59

spring概述

  • spring是一个容器框架,创建bean,维护bean之间的关系
  • spring可以管理web层,持久层,业务层,dao层,spring可以配置各个层的组件,并且维护各个层的关系

spring整合struts2之配置

web.xml配置
1. 除了在文件中配置使用struts2的过滤器外,还需要配置一个spring框架提供的一个监听器
2. 同时配置一个applicationConte.xml文件路径,可以供给spring框架扫描到关于spring配置的相关信息

<context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:/applicationContext.xml</param-value></context-param><listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

applicationContext.xml配置
1. 在src根路径下创建一个applicationContext.xml文件,在该文件中配置struts2的相关信息
2. 配置bean,配置属性id(bean的名字),class(bean类路径)
3. 如果bean有依赖的属性,那么还要配置property属性

<bean id="adminDao" class="com.bwf.book.dao.impl.AdminDaoImpl">        <property name="sessionFactory" ref="sessionFactory" />    </bean>

说明:adminDao就是要存入容器的bean,class是实现类,sessionFacatory是其依赖的属性,其他的层也是如此配置格式
struts.xml(或者是包含文件中)配置
在struts相关的xml文件中将class的实现类路径修改为applicationContext.xml文件中对应的bean的id名,其余配置不变

spring整合struts2之注解

applicationContext.xml配置
1. 不用在文件中配置要经常调用的controller层、service层、dao层的bean属性
2. 直接在文件中声明配置,将指定的包路径下的组件类扫描并实例化存放到spring容器中

<!-- 在basePackage指定的包及后代包中扫描所有的组件类,将其实例化,放入整个容器中 --><!-- 组件类(在类的声明上,使用了@Component注解的类、@Controller、@Service、@Repository)  --><context:component-scan base-package="指定的包路径"  />

说明:该标签的使用需要导入相应的约束
3. 配置后,在实际需要存入容器的类上添加注解:
@Controller表示控制器
@Scope(“prototype”)表示每次访问的时候都会创建一个处理器

@Service表示业务逻辑处理器(只需要创建一个)

@Repository表示持久层处理器(只需要创建一个)
除此之外的可以使用
@Component表示所有的bean都可以放入容器中(只需要创建一个,可用在sessionFactory)
对于bean所依赖的属性,可以在属性声明上加注解:@Autowired自动完成装配,struts.xml配置不用改变

spring整合hibernate

applicationContext.xml配置
在文件中需要配置数据源、sessionFactory会话工厂
1. 数据源配置:
用alibaba的数据源(相应的包导入,百度),也可以用c3p0数据源,百度即可

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">        <property name="driverClassName" value="${jdbc.driver}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />        <property name="initialSize" value="8" />    </bean>

说明:${jdbc.driver}表示占位符,可以在src根目录小创建一个properties文件,键名就是占位符对应的名字,然后在这个xml文件中配置一个读取的路径:

<!-- 扫描指定的properties文件,将属性信息加载到内存中 然后再将${}替换掉--><context:property-placeholder location="classpath:jdbc.properties" />

对于数据源还可以配置连接池的其他属性,不再赘述
2. 会话工厂配置:

<!-- 配置spring整合hibernate会话工厂实现类 --><bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="packagesToScan">            <list>                <value>com.bwf.book.entity</value>            </list>        </property>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>                <prop key="hibernate.show_sql">true</prop>                <prop key="hibernate.format_sql">true</prop>            </props>        </property></bean>

说明:该会话工厂依赖于上面的数据源dataSource,需要配置实体类的包路径,由此来说明哪些是需要持久化的实体;另外,需要配置好hibernate的属性,即方言、sql语句的格式和显示

阅读全文
1 0
原创粉丝点击