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

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语句的格式和显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值