Spring第一天

Spring

课程分析:

第一天:Spring的IOC(XML)

   要求 能够独立搭建IOC的开发环境 理解IOC的优势

第二天:Spring的IOC(注解)

   要求 能够独立搭建注解的IOC开发环境 使用XML和注解实现案例

第三天:Spring的AOP(XML和注解)

   要求   能够搭建AOP的开发环境 理解AOP的技术 实现案例

第四天:Spring的JdbcTemplate和声明式事务

   要求   会用JdbcTemlate实现增删改查 会配置spring的声明式事务

第五天:SSH整合

   要求   整合三个版本,

 

程序的耦合:

   调用者和被调用者的依赖关系

在开发过程中遵循的原则是:

   编译时不依赖,运行时依赖

解决依赖的关系:

   使用反射创建类对象

使用反射创建类对象引发的问题:

   使用配置文件,通过读取配置文件来反射创建对象

 

Day01

1.1.1 Spring介绍

Spring是分层的轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核,提供了表现层Spring MVC 和持久层 Spring JDBC以及业务层事务管理等众多的企业级应用技术。

1.1.2 spring的优势

1方便解耦 简化开发

  通过spring提供的IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免耦合。

2 AOP编程的支持

  通过AOP功能,方便进行面向切面编程。

3声明式事务的支持

  通过声明式方式精活的进行事务的管理

4 方便程序的测试

  可以用非容器的编程方法进行几乎所有的测试工作。

5 方便集成各种优秀框架

 Spring可以降低各种优秀框架的使用难度,提供了对各种框架的直接支持

6 降低javaEE API 的使用难度

 spring对javaEE API进行了封装,使得API使用变的简单

7 java源码是经典学习范例

 Spring的源码设计精巧,结构清晰。

 

Spring的应用:

1 导入jar包

2 在项目的根目录下创建bean.xml 文件,声明约束,然后配置资源。

<?xml version="1.0"encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schma/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

   http://www.springframework.org/schema.beans/spring-beans.xsd">

    <!-- 配置资源:把对象的成绩交个spring来处理 -->

    <bean id= "customerService"class="com.haut.service.impl.CustomerServiceImpl"></bean>

    <bena id= "customerDao"class="com.haut.Dao.impl.CustomerDao"/>

 </beans>

 

调用对象的方法:

ClassPathXmlApplicationContext:他是只能加载类路径下的配置文件,一般使用它

FileSystemXmlApplicationContext:他是可以加载磁盘下的配置文件,一般不用

 

获取容器:

ApplicationContext ac = newClassPathXmlApplicationContext(“bean.xml”);

得到对象:

ICustomerService cs = (ICustomerService)ac.getBean(“customerService”);

 

Bean的两种创建规则:

BeanFactory:延迟加载,bean对象什么时候用什么时候创建

ApplicationContext:立即加载,只要解析完bean.xml文件就立即加载。

 

Bean的三种实例化方法:

1.  调用无参构造函数创建,如果没有无参构造函数,会出异常(用的最多)

2.      使用静态工厂中的方法创建

需要使用bean标签的factory-method属相,指定静态工厂中的方法

3.      使用实例工厂创建

首先声明实例化工厂对象,然后利用实例化工厂对象中的方法来实例化对象。

bean的作用范围:

他是可以通过配置的方法来调整作用范围

配置的属性:bean标签的属性 scope属性

属相的取值有:

 singleton:单例(默认的)

 prototype:多例的(当我们让spring接管Struts2的action创建时,action必须配置)

 request:作用方法是一次请求

 session:作用范围是一次会话

 globalsession:作用范围是一次全局会话

 

bean的声明周期:

涉及bean标签的两个属性

   init-method  destroy-method

单例:出生:容器创建,对象出生

     活着:只要容器在,对象就活着

     死亡:容器销毁,对象消亡

多例:出生:每次使用时创建对象

     活着:只要对象在使用中就一直活着

     死亡:当对象长时间不使用,并且也没有其他对象引用时,有java的垃圾回收机制销毁。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值