SSH框架(spring)
来源:互联网 发布:mysql系统当前时间 编辑:程序博客网 时间:2024/05/22 15:52
一.什么是spring
1 spring是轻量级开源框架
2 spring是一站式框架
(1)针对javaee三层结构
Web层: springMVC
Service层:spring的ioc
Dao层:spring的jdbcTemplate
3 spring核心有两部分:
(1)ioc:
- 控制反转:
- 之前操作,有一个类,调用类里面的方法(不是静态方法),创建类对象,使用对象调用的方法实现
- 在spring把创建对象过程,不在代码里面实现,而是交给spring进行配置实现
底层原理;xml配置文件+dom4j+工厂设计模式+反射
(2)aop:
- 面向切面:
- 扩展功能,不修改源代码,通过配置方式实现,增强类
二.spring入门
*web.xml:
<!-- 指定找到spring配置文件位置和名称 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:bean1.xml</param-value>
</context-param>
<!-- 配置spring的监听器在服务器启动时候,加载spring配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
//applicationContext.xml核心配置文件,名字有讲究默认找到/web-inf/applicationContext.xml下的配置文件
*spring.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 1,配置c3p0的连接池: -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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="maxActive" value="10" />
<property name="maxIdle" value="5" />
</bean>
<!-- 2,与Struts2进行整合: -->
<!-- 创建action多实例对象 Struts2.xml文件的class属性里面写bean标签的id -->
<bean id="userAction" class="cn.itcast.action.UserAction" scope="prototype">//多列
<!-- 注入UserService对象属性 -->
<property name="userService" ref="userService"></property>
</bean>
<!-- 3,与Hibernate进行整合: -->
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- (1),注入数据源: 即指定数据库-->
<property name="dataSource" ref="dataSource"></property>
<!-- (2),注入该类中的属性configLocations: 即指定加载的文件名称 -->
<!-- private Resource[] configLocations; -->
<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
</bean>
<!-- 4,各层的对象创建与注入 -->
<!-- (1),创建UserService对象 -->
<bean id="userService" class="cn.itcast.service.UserService">
<!-- 注入UserDao对象属性 -->
<property name="userDao" ref="userDao"></property>
</bean>
<!-- (2),创建UserDao对象 -->
<bean id="userDao" class="cn.itcast.dao.UserDao">
<!--
注入HibernateTemplate对象属性
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
-->
<!-- 那这里直接注入: SessionFactory对象属性 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 5,HibernateTemplate对象创建与注入 -->
<!-- (3)1,创建HibernateTemplate模板对象 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
注入SessionFactory对象属性
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 6,事务管理器HibernateTransactionManager -->
<!-- (1),创建事务管理器对象 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<!-- 注入管理事务的数据源: 即指定数据库 ;但这里我们建议注入: SessionFactory-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- (2),开启事务的注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- (3),在所在事务的类的上面添加注解 -->
</beans>
*service层Java代码:
@Transactional//事务管理标签
public class UserService {
//1 让dao作为属性
private UserDao userDao;
//2 生成dao属性的set方法注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
三.如何用注解方式注入和创对象
要在spring.xml里面配置
<!-- 开启注解扫描 -->
<context:component-scan base-package="cn.itcast"></context:component-scan>
java类
@Service(value="user") // 创对象
@Scope(value="prototype")//设置单列或者多列
public class UserDao {
public void add() {
System.out.println("add..........");
}
}
@Resource(name="user")//把上面类的对象注入到这个属性里面
private UserDao user;
/*第二种
@@Autowired
private UserDao user;
*/
1 spring是轻量级开源框架
2 spring是一站式框架
(1)针对javaee三层结构
Web层: springMVC
Service层:spring的ioc
Dao层:spring的jdbcTemplate
3 spring核心有两部分:
(1)ioc:
- 控制反转:
- 之前操作,有一个类,调用类里面的方法(不是静态方法),创建类对象,使用对象调用的方法实现
- 在spring把创建对象过程,不在代码里面实现,而是交给spring进行配置实现
底层原理;xml配置文件+dom4j+工厂设计模式+反射
(2)aop:
- 面向切面:
- 扩展功能,不修改源代码,通过配置方式实现,增强类
二.spring入门
*web.xml:
<!-- 指定找到spring配置文件位置和名称 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:bean1.xml</param-value>
</context-param>
<!-- 配置spring的监听器在服务器启动时候,加载spring配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
//applicationContext.xml核心配置文件,名字有讲究默认找到/web-inf/applicationContext.xml下的配置文件
*spring.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 1,配置c3p0的连接池: -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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="maxActive" value="10" />
<property name="maxIdle" value="5" />
</bean>
<!-- 2,与Struts2进行整合: -->
<!-- 创建action多实例对象 Struts2.xml文件的class属性里面写bean标签的id -->
<bean id="userAction" class="cn.itcast.action.UserAction" scope="prototype">//多列
<!-- 注入UserService对象属性 -->
<property name="userService" ref="userService"></property>
</bean>
<!-- 3,与Hibernate进行整合: -->
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- (1),注入数据源: 即指定数据库-->
<property name="dataSource" ref="dataSource"></property>
<!-- (2),注入该类中的属性configLocations: 即指定加载的文件名称 -->
<!-- private Resource[] configLocations; -->
<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
</bean>
<!-- 4,各层的对象创建与注入 -->
<!-- (1),创建UserService对象 -->
<bean id="userService" class="cn.itcast.service.UserService">
<!-- 注入UserDao对象属性 -->
<property name="userDao" ref="userDao"></property>
</bean>
<!-- (2),创建UserDao对象 -->
<bean id="userDao" class="cn.itcast.dao.UserDao">
<!--
注入HibernateTemplate对象属性
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
-->
<!-- 那这里直接注入: SessionFactory对象属性 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 5,HibernateTemplate对象创建与注入 -->
<!-- (3)1,创建HibernateTemplate模板对象 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
注入SessionFactory对象属性
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 6,事务管理器HibernateTransactionManager -->
<!-- (1),创建事务管理器对象 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<!-- 注入管理事务的数据源: 即指定数据库 ;但这里我们建议注入: SessionFactory-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- (2),开启事务的注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- (3),在所在事务的类的上面添加注解 -->
</beans>
*service层Java代码:
@Transactional//事务管理标签
public class UserService {
//1 让dao作为属性
private UserDao userDao;
//2 生成dao属性的set方法注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
三.如何用注解方式注入和创对象
要在spring.xml里面配置
<!-- 开启注解扫描 -->
<context:component-scan base-package="cn.itcast"></context:component-scan>
java类
@Service(value="user") // 创对象
@Scope(value="prototype")//设置单列或者多列
public class UserDao {
public void add() {
System.out.println("add..........");
}
}
@Resource(name="user")//把上面类的对象注入到这个属性里面
private UserDao user;
/*第二种
@@Autowired
private UserDao user;
*/
1 0
- spring框架,ssh框架
- SSH 框架之Spring
- SSH框架-Spring
- SSH框架中的Spring
- SSH框架之Spring
- 【SSH】Spring框架学习
- SSH框架(spring)
- 《SSH框架》---spring
- SSH框架Spring注入配置
- 理解SSH框架中的Spring
- SSH框架spring整合hibernate
- SSH(spring+hibernate+struts)框架
- SSH框架(三) spring 定时器
- SSH之 spring框架配置文件
- SSH:Spring框架(简介)
- ssh框架spring 简单应用
- SSH:Spring框架(spring之AOP)
- Spring在SSH框架中的作用
- (2) linux 3.x
- SSH框架(hibernate)
- 如何在PHP中使用Oracle数据库(6)
- Linux粘滞位
- 【Java之泛型】2.高级应用
- SSH框架(spring)
- PAT Algorithm Practice
- Java 反射是什么 && 缺点
- SSH框架(struts2)
- Java多线程系列--“JUC原子类”
- Python装饰器的通俗理解
- Mysql性能优化实践
- RDDs
- Spring笔记-简单的Spring入门程序(一)