博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 4 : 整合 SSH
阅读量:4970 次
发布时间:2019-06-12

本文共 8234 字,大约阅读时间需要 27 分钟。

简介:ssh的整合

 

1       SSH整合

1.1   jar整合

struts:2.3.15.3

hibernate : 3.6.10

spring: 3.2.0

 

1.1.1   struts(jar包导入)

struts-2.3.15.3\apps\struts2-blank\WEB-INF\lib

 

  模板技术  ,一般用于页面静态化

  freemarker:扩展名:*.ftl

  velocity :扩展名  *.vm

1.1.2   spring(jar包导入)

l    基础:4+1 , beans、core、context、expression , commons-logging (struts已经导入)

l    AOP:aop联盟、spring aop 、aspect规范、spring aspect

l    db:jdbc、tx

l    测试:test

l    web开发:spring web

 

l    驱动:mysql

l    连接池:c3p0

 

l    整合hibernate:spring orm

 

 

1.1.3   hibernate(jar包导入)

%h%\hibernate3.jar                     核心

%h%\lib\required                         必须

      

%h%\lib\jpa                                jpa规范 (java persistent api 持久api),hibernate注解开发 @Entity @Id 等

 

l  整合log4j

       导入 log4j...jar (struts已经导入)

       整合(过渡):slf4j-log4j12-1.7.5.jar

l  二级缓存

       核心:ehcache-1.5.0.jar

       依赖:

              backport-util-concurrent-2.1.jar

              commons-logging  (存在)

1.1.4   整合包(jar包导入)

l    spring整合hibernate: spring orm

l    struts 整合spring:struts2-spring-plugin-2.3.15.3.jar

删除重复jar包(39个)

 

1.2   spring整合hibernate:有hibernate.cfg.xml

1.2.1   创建表

create table t_user(  id int primary key auto_increment,  username varchar(50),  password varchar(32),  age int);
sql

 

1.2.2   PO 类

 

l  javabean

1 public class User {2     private Integer id;3     private String username;4     private String password;5     private Integer age;
javaBean

 

l  映射文件

bean.hbm.xml

 

1.2.3   dao层

l  spring提供 HibernateTemplate 用于操作PO对象,类似Hibernate Session对象。

 

1 public class UserDaoImpl implements UserDao { 2  3     4  5     //需要spring注入模板 6  7     private HibernateTemplate hibernateTemplate; 8  9     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {10 11         this.hibernateTemplate = hibernateTemplate;12 13     }14 15  16 17     @Override18 19     public void save(User user) {20 21         this.hibernateTemplate.save(user);22 23     }24 25  26 27 }
dao

 

1.2.4   service层

1 public class UserServiceImpl implements UserService { 2  3   4  5     private UserDao userDao; 6  7     public void setUserDao(UserDao userDao) { 8  9         this.userDao = userDao;10 11     }12 13     @Override14 15     public void register(User user) {16 17         userDao.save(user);18 19     }20 21  22 23 }
service

 

1.2.5   hibernate.cfg.xml

1 
2 3
4 5
com.mysql.jdbc.Driver
6 7
jdbc:mysql:///ee19_spring_day03
8 9
root
10 11
1234
12 13 14 15
16 17
org.hibernate.dialect.MySQL5Dialect
18 19 20 21
22 23
true
24 25
true
26 27 28 29
30 31
update
32 33 34 35
36 37
thread
38 39 40 41
42 43
44 45 46 47
Hibernate.cfg.xml

 

1.2.6   applicationContext.xml

1.2.6.1         添加命名空间

applicationContext.xml

 

1.2.6.2         加载hibernate配置文件

1 
6 7
8 9
10 11
12 13 14 15
20 21
22 23
24 25
View Code

 

1.2.6.3         dao和service

1 
2 3
4 5
6 7
8 9 10 11
12 13
14 15
16 17
View Code

 

1.2.6.4         事务管理

1 
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
22 23
24 25
26 27
28 29
View Code

 

1.2.7   测试

1 @RunWith(SpringJUnit4ClassRunner.class) 2  3 @ContextConfiguration(locations="classpath:applicationContext.xml") 4  5 public class TestApp { 6  7    8  9    @Autowired10 11    private UserService userService;12 13   14 15    @Test16 17    public void demo01(){18 19       User user = new User();20 21       user.setUsername("jack");22 23       user.setPassword("1234");24 25       user.setAge(18);26 27      28 29       userService.register(user);30 31    }32 33 }
TestApp

 

1.3   spring整合hibernate:没有hibernate.cfg.xml 【】

l    删除hibernate.cfg.xml文件,但需要保存文件内容,将其配置spring中

l    修改dao层,继承HibernateDaoSupport

 

1.3.1   修改spring,配置SessionFactory

1 
2
3
4
5
6
7
8
9 10
25
26
27
28
29
org.hibernate.dialect.MySQL5Dialect
30
true
31
true
32
update
33
thread
34
35
36
37
applicationContext.xml

 

1.3.2   修改dao,使用HibernateDaoSupport

l  继承HibernateDaoSupport

1 // 底层需要SessionFactory,自动创建HibernateTemplate模板 2  3 public class UserDaoImpl extends HibernateDaoSupport implements UserDao { 4  5   6  7    @Override 8  9    public void save(User user) {10 11       this.getHibernateTemplate().save(user);12 13    }14 15  16 17 }
dao

 

l  spring 删除模板,给dao注入SessionFactory

1  
2 3
4 5
6 7
applicationContext.xml

 

1.4   struts整合spring:spring创建action

1.编写action类,并将其配置给spring ,spring可以注入service

2.编写struts.xml

3.表单jsp页面

4.web.xml 配置

       1.确定配置文件contextConfigLocation

       2.配置监听器 ContextLoaderListener

       3.配置前端控制器 StrutsPrepareAndExecuteFitler

 

1.4.1   action类

l  通用

1 public class UserAction extends ActionSupport implements ModelDriven
{ 2 3 4 5 //1 封装数据 6 7 private User user = new User(); 8 9 10 11 @Override12 13 public User getModel() {14 15 return user;16 17 }18 19 20 21 //2 service22 23 private UserService userService;24 25 public void setUserService(UserService userService) {26 27 this.userService = userService;28 29 }
action

 

l  功能 

1 /** 2  3     * 注册 4  5     * @return 6  7     */ 8  9    public String register(){10 11       userService.register(user);12 13       return "success";14 15    }
View Code

 

1.4.2   spring配置 

1 
2 3
4 5
6 7
View Code

1.4.3   struts配置

1 
2 3
4 5
6 7 8 9
10 11
12 13
14 15
/messag.jsp
16 17
18 19
20 21
struts.xml

1.4.4   jsp表单

1 
2 3 用户名:
4 5 密码:
6 7 年龄:
8 9
10 11
jsp
 

1.4.5   配置web.xml

1 
2 3
4 5
contextConfigLocation
6 7
classpath:applicationContext.xml
8 9
10 11
12 13
14 15
org.springframework.web.context.ContextLoaderListener
16 17
18 19
20 21
22 23
struts2
24 25
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
26 27
28 29
30 31
struts2
32 33
/*
34 35
web.xml

 

1.5   struts整合spring:struts创建action 【】

l  删除spring action配置

l  struts <action class="全限定类名">

<package name="default" namespace="/" extends="struts-default">

    <!-- 底层自动从spring容器中通过名称获得内容, getBean("userAction") -->

    <action name="userAction_*" class="com.itheima.web.action.UserAction" method="{1}">

         <result name="success">/messag.jsp</result>

    </action>

    </package>

 

要求:Action类中,必须提供service名称与 spring配置文件一致。(如果名称一样,将自动注入)

      

 

 

分析:

1. struts 配置文件

       default.properties  ,常量配置文件

       struts-default.xml ,默认核心配置文件

       struts-plugins.xml ,插件配置文件

       struts.xml,自定义核心配置文件

       常量的使用,后面配置项,将覆盖前面的。

2.default.properties  ,此配置文件中确定 按照【名称】自动注入

       /org/apache/struts2/default.properties

      

3. struts-plugins.xml ,struts整合spring

      

              <constant name="struts.objectFactory" value="spring" />

       struts的action将有spring创建

 

总结,之后action有spring创建,并按照名称自动注入

转载于:https://www.cnblogs.com/soficircle/p/7113539.html

你可能感兴趣的文章
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>