首页 > 编程语言 > 详细

Spring学习笔记(六)----SSH框架整合

时间:2019-09-01 22:47:49      阅读:63      评论:0      收藏:0      [点我收藏+]

SSH 框架整合

Struts2 和 Spring 整合

Jar 包:Struts2-spring-plugin 和 struts 相关 jar 包

public class UserAction extend ActionSupport {

    @Override
    public String execute() throws Exception {
        return NONE;
    }
}
<!-- spring 配置文件 -->
<!-- c3p0 连接池配置(默认写好) -->

<!-- 配置 Action 的对象 -->
<bean id="userAction" class="xx.xxx.UserAction" scope="prototype"/>

<!-- struts 配置文件 -->
<struts>
    <package name="xxx" extends="struts-default" namespace="/">
        <!-- 与 spring 整合后 class 只需要写其 id -->
        <action name="userAction" class"userAction" />
    </package>
</struts>

Hibernate 和 Spring 整合

不需要数据库信息的配置

<!-- c3p0 连接池配置(默认写好) -->
<!-- 配置事务管理器 -->
<bean id="transactionManager" calss="...HibernateTransactionManager">
    <!-- 注入 sessionFactory (也可以注入 dataSource) -->
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 开启事务注解 (同上)-->
<!-- sessionFactory 创建交给 Spring 管理(Spring 中有封装好的类 -->
<bean id="sessionFactory" class="...LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- 指定 Hibernate 配置文件(无配置文件不需要写这个)-->
    <property name="configLocations" value="classpath:hibernate.cfg.xml"/>
    <!-- 也可以直接将 hibernate 配置写在此处,减少配置文件 -->
    <!-- 以下为无 hibernate 配置文件 示例 -->
    <!-- 配置 hibernate 基本信息 -->
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.show_sql"> true </prop>
            <prop key="hibernate.format_sql"> true </prop>
            <prop key="hibernate.dialet"> org.hibernate.dialect.MySQLDialect </prop>
        </props>
    </property>
    <!-- 配置映射文件 -->
    <property name="mappingResources">
        <List>
            <value> xin/jeson/entity/User.hbm.xml </value>
            <!-- .... -->
        </List>
    </property>
</bean>

HibernateTemplate 的使用

<!-- 包含以上整合内容 -->
<!-- 创建 HibernateTemplate 对象 -->
<bean id="hibernateTemplate" class"...">
    <property name="sessionFactory" ref="sessionFactory/>
</bean>
@Component
public class User {
    // TODO
}
public interface UserDao {
    public void add();
}
@Repository
@Transactional  // 开启事务后正常运行
public class UserDaoImpl implements UserDao {
    private HibernateTemplate hibernateTemplate;
    @Autowired
    public UserDaoImpl(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }
    public void add() {
        // 此时无法成功更新数据库,需要使用事务提交
        hibernateTemplate.save(entity);  // 添加操作
    }
}
@Service
public class UserService {
    private UserDao userDao;
    @Autowired
    public UserService(UserDaoImpl userDaoImpl) {
        this.userDao = userDaoImpl;
    }
}
@Controller
public class UserAction {
    private UserService userService;
    @Autowired
    public UserAction(UserService userService) {
        this.userService = userService;
    }
}
// Hibernate crud 操作
// 添加操作
Serializable save(Object entity)
// 修改操作
void update(Object entity)
// 删除操作
void delete(Object entity)
// 查询操作
<T> T get(Class<T> entityClass, Serializable id)
<T> T load(Class<T> entityClass, Serializable id)
List find(Sring queryString, Object... values)

// 示例
// 1. get 方法:根据 id 查询
User user = hibernateTemplate.get(User.class, id)
// 2. find 查询所有 (HQL 语句查询)
List<User> list = (List<User>)hibernateTemplate.find("from User")
// 3. find 查询 username = jeson 的语句
List<User> list = (List<User>)hibernateTemplate.find("from User where username=?", "jeson")

Spring 分模块开发

  1. 在 Spring 里面配置多个内容,造成配置混乱,不利于维护
    • 可将部分配置使用单个文件配置
    • 在 Spring 核心文件中引用即可
    // 引用格式
    <!-- 引入其他配置文件 -->
    <import resource="classpath:xx.xml"/>

Spring学习笔记(六)----SSH框架整合

原文:https://www.cnblogs.com/qq188380780/p/11443854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!