SSH(一)

系统程序架构:

    整合思路
        1.逆依赖方向而行,由Spring提供对象管理和服务
        2.依次实现Spring与Hibernate、Spring与Struts2的集成

配置web.xml文件:
    1.设置Spring配置文件
        Spring配置文件的存放位置,若文件放置在/WEB-INF/目录下且名称为applicationContext.xml,可以不配置此项
    范例:

1 <context-param>
2         <param-name>contextConfigLocation</param-name>
3         <param-value>classpath:applicationContext.xml</param-value>
4 </context-param>

2.指定何时启动Spring容器
        该监听器用于在web环境中启动Spring容器
    范例:

1 <listener>
2         <listener-class>
3             org.springframework.web.context.ContextLoaderListener
4         </listener-class>
5 </listener>

3.配置OpenSessionInVIew模式
        该过滤器把一个Hibernate Session和一次完整的请求过程相绑定解决了诸如延迟加载等问题。
    范例:

 1 <filter>
 2         <filter-name>OpenSessionInViewFilter</filter-name>
 3         <filter-class>
 4             org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
 5         </filter-class>
 6 </filter>
 7 <filter-mapping>
 8         <filter-name>OpenSessionInViewFilter</filter-name>
 9         <url-pattern>/*</url-pattern>
10 </filter-mapping>

注意:
    1. 该过滤器要配置在Struts 2核心控制器之前
    2. 若Spring中定义的SessionFactory Bean的id不是sessionFactory,需要为该过滤器配置sessionFactoryBeanName参数
        
在Spring中配置数据源和会话工厂:
    方法一:配置文件分离
        a.定义独立的Hibernate配置文件
        b.由Spring导入并创建会话工厂Bean
    方法二:在Spring配置文件中进行集中配置
        a.先配置数据源,再以此为基础配置会话工厂Bean
        b.持久化类的映射文件可以逐个配置,也可以按目录导入
        
使用HibernateDaoSupport基类:
    1.HibernateDaoSupport基类的setSessionFactory()方法
    范例:

1  <bean id="sessionFactory"
2         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
3         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
4 </bean>
5
6 <bean id="userDao" class="com.xuetang9.demo.dao.impl.UserDaoImpl">
7         <property name="sessionFactory" ref="sessionFactory"></property>
8 </bean>

1.hibernate的配置文件自动生成时,没有userName 和 password?

范例:
1.hibernate.cfg.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 8         <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernatedb</property>
 9            <property name="connection.username">root</property>
10         <property name="connection.password">root</property>
11         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
12         <property name="show_sql">true</property>
13         <property name="format_sql">true</property>
14
15         <mapping resource="com/Elastic/SpringDemo3/ivy/entity/User.hbm.xml"/>
16
17     </session-factory>
18 </hibernate-configuration>

2.struts.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4     "http://struts.apache.org/dtds/struts-2.3.dtd">
5
6 <struts>
7
8 </struts>

3.web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
 3   <display-name>SpringDemo3_ivy</display-name>
 4   <welcome-file-list>
 5     <welcome-file>index.html</welcome-file>
 6     <welcome-file>index.htm</welcome-file>
 7     <welcome-file>index.jsp</welcome-file>
 8     <welcome-file>default.html</welcome-file>
 9     <welcome-file>default.htm</welcome-file>
10     <welcome-file>default.jsp</welcome-file>
11   </welcome-file-list>
12
13   <!-- 配置Spring文件的位置 -->
14   <context-param>
15       <param-name>contextConfigLocation</param-name><!-- 固定 -->
16       <!-- classPath:表示放在项目的根目录下 -->
17       <param-value>classPath:applicationContext.xml</param-value>
18   </context-param>
19
20   <!-- 配置Spring的启动监听器 -->
21   <listener>
22       <listener-class>org.springframework.web.context.ContextCleanupListener</listener-class>
23   </listener>
24
25   <!-- 配置OpenSessionInView模式 -->
26   <filter>
27       <filter-name>OpenSessionInView</filter-name>
28       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
29   </filter>
30   <filter-mapping>
31       <filter-name>OpenSessionInView</filter-name>
32       <url-pattern>/*</url-pattern>
33   </filter-mapping>
34
35   <!-- 配置Struts2核心控制器 -->
36   <filter>
37       <filter-name>Struts2</filter-name>
38       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
39   </filter>
40   <filter-mapping>
41       <filter-name>Struts2</filter-name>
42       <url-pattern>/*</url-pattern>
43   </filter-mapping>
44
45   <!-- 配置HttpSession过期时间(单位:分钟) -->
46   <session-config>
47       <session-timeout>20</session-timeout>
48   </session-config>
49
50 </web-app>

4.applicationContext.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
 6         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
 7
 8     <!-- 配置SessionFactory(方法1:独立hibernate配置文件) -->
 9     <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
10         <property name="configLocation" value="classPath:applicationContext.xml"></property>
11     </bean> -->
12
13     <!-- 使用Spring集成Hibernate(方法2:不需要hibernate配置文件) -->
14     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
15         <property name="user" value="root"></property>
16         <property name="password" value="root"></property>
17         <property name="jdbcUrl" value="jdbc:mysql://localhost/hibernatedb"></property>
18         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
19
20         <!-- 连接池 -->
21         <property name="initialPoolSize" value="10"></property>
22         <property name="minPoolSize" value="5"></property>
23         <property name="maxPoolSize" value="100"></property>
24         <property name="acquireIncrement" value="3"></property>
25         <!-- 请求获取连接的重试次数 -->
26         <property name="acquireRetryAttempts" value="3"></property>
27         <property name="acquireRetryDelay" value="5"></property>
28         <property name="idleConnectionTestPeriod" value="60"></property>
29
30     </bean>
31
32     <!-- 使用dataSource配置SessionFactory -->
33     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
34         <property name="dataSource" ref="dataSource"></property>
35         <property name="hibernateProperties">
36             <props>
37                 <prop key="dialect">org.hibernate.dialect.MySQLDialect</prop>
38                 <prop key="show_sql">true</prop>
39                 <prop key="format_sql">true</prop>
40             </props>
41         </property>
42
43         <!-- 通配 -->
44         <property name="mappingLocations" value="classPath:com/Elastic/SpringDemo3/ivy/entity/*.hbm.xml">
45         </property>
46
47         <!-- 穷举 -->
48         <!-- <property name="mappingLocations">
49             <list>
50                 <value>classPath:com/Elastic/SpringDemo3/ivy/entity/*.hbm.xml</value>
51             </list>
52         </property> -->
53
54     </bean>
55 </beans>
时间: 2024-10-29 19:11:51

SSH(一)的相关文章

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

Linux ssh

一.简介 二.安装 三.配置 四.其他 1)SSH端口转发 https://blog.fundebug.com/2017/04/24/ssh-port-forwarding/

已经在Git Server服务器上导入了SSH公钥,可用TortoiseGit同步代码时,还是提示输入密码?

GitHub虽好,但毕竟在国内访问不是很稳定,速度也不快,而且推送到上面的源码等资料必须公开,除非你给他交了保护费:所以有条件的话,建议大家搭建自己的Git Server.本地和局域网服务器都好,不信你试试,那速度,怎一个爽字了得! 默认情况下,使用TortoiseGit同步代码,每次都需要输入用户名和密码,但为了方便可以在客户端创建ssh密钥,用于服务器端和客户端的认证(详细过程大家可参考这里),但有时会出现“ 已经在Git Server服务器上导入了SSH公钥,可用TortoiseGit同步

maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WH 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven project(pom),然后在创建三个子模块(maven moudule),其中三个子模块,分别为 dao.service.web,也就是将三层的内容分别独立为一个项目,进一步将耦合性降低,其中如何将他们

ssh 忽略known_hosts连接

ssh 忽略known_hosts连接两种方式 1.通过paramiko连接: #!/usr/bin/env python import paramiko ip='192.168.190.128' username='root' password='server' port=22 #设置记录日志 paramiko.util.log_to_file('ssh.log') #生成ssh客户端实例 s = paramiko.SSHClient() s.set_missing_host_key_poli

&lt;Linux&gt; SSH配置之后 SHH slave1 测试 error:SSH: command not found

首先要查看一下ssh命令存在何处 # which ssh /usr/bin/ssh 使用ssh的绝对路径 # /usr/bin/ssh slave1Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64) * Documentation: https://help.ubuntu.com/ 545 packages can be updated.240 updates are security updates.

Linux服务器安全策略配置-SSH与动态MOTD(一)

Linux登录提示(静态/动态MOTD) 在用户输入口令或使用密钥成功登录后,让服务器自动为我们执行几个简单的操作,如打印提示信息,打印异常信息,执行一个脚本,或者发送邮件等.能够预先提示信息给登录者,让我们在登录机器采取任何操作之前,可以快速的了解这台机器的重要信息.看起来是不是很有意思呢? 也许我们会想,这对于服务器的安全加固并没有直接的影响,而且每次刚刚登录就执行一系列命令.脚本(如收集服务器资源使用情况的信息),似乎也有点多余.因此,如果是在生产环境的Linux服务器并且需要配置登录提示

SSH Struts2+hiberante+Spring整合

使用SSH框架编写学生信息: 一.新建Java工程: (1)建立好Java各层级之间的结构:业务处理层dao,数据模型层domain,页面请求处理层(Struts2 MVC层)action,service层. (2)建立好各层的实现类及接口; (3)建立一个source folder文件夹,用来存放一些配置问价. (4)改变字节码生成的位置,改为WEB-INF下面的classes文件夹下. Java工程层级结构如下图: 二.hibernate整合到Spring容器中 步骤: 1.编写domain

ssh连接服务器以及scp上传文件方法

本地控制台输入 ssh [email protected]外网ip或内网ip,举例:ssh [email protected]      这是用用户名为root的用户登录192.168.133.196这个地址所在的后台.如果提示以下红色部分错误: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@