ssh和ssm框架整合步骤

来源:互联网 发布:qq空间皮肤psd源码 编辑:程序博客网 时间:2024/05/24 04:28

servlet 和springmvc 被多个同时访问只产生一个对象. 是单例.

初心

EJB: enterprise javaBean 太笨重

Spring
功能用于替代EJB技术,主要用于管理对象以及对象见得依赖关系.
管理方式:
1.ICO/DI 控制翻转/依赖注入
IOC:从主动查找并调用自己所依赖的资源到被动接受spring注入的资源,成为控制反转.
DI: 有两种注入的形式:1. xml配置注入 2. 注解注入.
2.AOP 面向切面编程
使用步骤:
1.添加spring的jar包.
2.在配置文件spring.xml中设置独享及其依赖
3.注入:
基本类型
对象
集合
properties
map
回顾;
ssh框架整合步骤
1.创建web项目 -- 注意选择高版本
2.导入全部jar包到项目中
3.web.xml中配置
<!-- 配置struts过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- 配置spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
4.创建前端页面,先结合spring和struts.主页struts.xml和spring.xml中的配置.
例:
struts:
<constant name="struts.objectFactory" value="spring"></constant>
<package name="default" extends="struts-default">
<!--ua* 是所有与ua开头的路径都会进来这个action.{1}* 所代表的路径-->
<action name="ua*" class="uac" method="{1}">
<result name="success">success.jsp</result>
<result name="index">index.jsp</result>
</action>
</package>
spring:
<bean id="uac" class="com.test.action.UserAction"> </bean>
5.struts和spring调试好了之后可以连接hibernate. struts.xml中的配置不变.
spring中需要添加操作书库库的操作,如连接池,和sessionfactory . 同时配置
例:
<!-- 连接池 -->
<bean id ="ds" class = "com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sh"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="initialSize" value="5"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
</bean>
<!-- sessionfactory -->
<bean id="sf" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="ds"></property>
<property name="hibernateProperties">
<props>
<!-- 输出sql语句 -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!-- 实体类和数据库的依赖关系 -->
<property name="mappingResources">
<list>
<value>com/test/entity/user.hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置UserDao类 -->
<bean id="ud" class="com.test.dao.UserDao">
<property name="sf" ref="sf"></property>
</bean>
<!-- 把UserDao类注入UserAction中 -->
<bean id="uac" class="com.test.action.UserAction">
<property name="ud" ref="ud"></property>
</bean>
6.在action中处理业务逻辑.在dao中做连接数据库操作
smh框架整合 SpringMVC + Hibernate
1.创建web工程,选择高版本.
2.导入spring和springmvc依赖的jar包'
3.配置web.xml
<!--spring监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<!--springmvc所需的Servlet-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.先整合spring和springmvc
注意:创建dispatcher-servlet.xml的配置文件,和spring.xml表头一样
spring.xml需要另外添加这几个选项

4.整合前端和springmvc完毕之后,整合hibernate
spring.xml配置如下:
<!-- 指定扫描路径 -->
<context:component-scan base-package="com.test"></context:component-scan>

<!-- 开启mvc -->
<mvc:annotation-driven></mvc:annotation-driven>

<!-- 添加连接池 -->
<bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/sh"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!-- sessionfactory -->
<bean id="sf"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="ds"></property>

<property name="mappingResources">
<list>
<value>com/test/entity/user.hbm.xml</value>
</list>
</property>
</bean>
5.实体类代码如下:
UserDao.java
@Repository// 在spring容器中创建一个userdao的对象
public class UserDao {
@Resource(name = "sf")//把 sf 对象注入UserDao
private SessionFactory sf;
//@SuppressWarnings("deprecation")//使警告保持沉默
public boolean login(User u) {
Session s = sf.openSession();
Query q = s.createQuery("from User where account = ? and pwd = ?");
q.setString(0, u.getAccount());
q.setString(1, u.getPwd());
Object result = q.uniqueResult();
s.close();
return result == null ? false : true;
}
}

UserCon.java

@Controller
public class UserCon {
@Resource//把UserDao类注入UserCon
private UserDao ud;
@RequestMapping(value = "login.do")
@ResponseBody//向页面输出字符串
public String login(User u) {
String rs = "shibai";
if (ud.login(u)) {
rs = "success";
}

return rs;
}
}


Spring的注解形式:@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean.
原创粉丝点击