夜光序言:
没有谁一天24小时都在忙,所谓的忙与闲,只不过是心里面觉得哪件事更重要罢了。
正文:
夜光:框架概述:
Struts2: 基于mvc模式的应用层框架
主要是作为控制层组件,javabean, jsp
Hibernate,mybatis : 持久层组件,简化jdbc操作
Spring: 主要有六大模块功能
事务管理
与其他框架整合
Mvc开发模式:
基于mvc模式的项目分层
1. Spring框架
Spring , 框架精华来了~
框架理解
框架,都会预先实现一些功能,给开发人员开发提供便利~
提高开发效率、提升程序可扩展性、健壮~
专业术语
高内聚、低耦合:
类内部的关系越紧密越好,类与类的关系越少越好~
非侵入式设计:
侵入式设计:
引入的组件对现有的类的结构会有影响,这种就是“侵入式设计”的组件~
Struts2: 侵入式设计~
Hibernate: 非侵入式设计~
非侵入式设计:
引入组件对现有的类的结构没有影响~
Spring, 非侵入式设计
IOC 容器
Inversion of control 控制反转
控制反转容器~ -à 对象创建的问题~
解释:
User user = new User(); 自己控制对象的创建
现在需要对象,自己不创建,交给外部的容器创建,叫控制反转~
IOC容器= bean.xml配置 + ApplicationContext容器类
DI, dependency injection 依赖注入
创建对象后,处理对象的依赖关系~
User user = new User();
user.setAddress(..) ;// 需要DI(依赖注入)
Aop…
Spring框架
Spring 开源框架,提供的是一站式解决方案~
六大模块:
…..
Spring 第一个案例, 解决项目中如何创建对象
1) 引入jar文件 (3.2版本)
commons-logging-1.1.3.jar 【单独下载】
spring-beans-3.2.5.RELEASE.jar 【spring源码, bean节点管理】
spring-context-3.2.5.RELEASE.jar 【spring上下文类】
spring-core-3.2.5.RELEASE.jar 【IOC容器】
spring-expression-3.2.5.RELEASE.jar 【spring表达式】
注意:
使用的版本Spring3.2
在这个版本中,只有spring自身的核心功能,spring依赖的其他组件,需要单独下载~ 例如:日志jar文件,就需要单独下载~
2) 新建applicationContext.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
</beans> |
3) 配置
<~-- 创建Dao实例 --> <bean id="userDao" class="cn.Genius.dao.UserDao"></bean>
<~-- 创建Service实例 --> <bean id="userService" class="cn.Genius.service.UserService"> <property name="userDao" ref="userDao"></property> </bean>
<~-- 创建Action实例 --> <bean id="userAction" class="cn.Genius.action.UserAction"> <property name="userService" ref="userService"></property> </bean> |
4) 测试
// 从IOC容器获取对象 @Test public void testApp2() throws Exception { // 容器对象(加载applicationContext.xml配置文件) ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取对象 UserAction userAction = (UserAction) ac.getBean("userAction"); userAction.execute(); } |