Spring框架学习之一(组件的使用)

Spring框架之一(组件)

  • Spring框架作用和优点
  • Spring框架容器
  • Spring框架IOC特性
  • Spring框架AOP特性的使用
  • Spring如何整合JDBC,Hibernate
  • Spring如何整合mybasic
  • Spring如何进行事物管理
  • spring框架主要负责技术整合,该框架提供IOC和AOP机制,基于这些特性整合,可以降低
  • 系统组件之间的耦合度,便于系统组件的维护,扩展和替换。
  • Spring容器管理程序中的Action,DAO等组件,通过容器的IOC和AOP机制,利用这些特性可以
  • 降低Action和DAO之间的关联,利用AOP进行事物管理等共通部分处理
  • Spring框架的核心是提供了一个容器,该容器类型是BeanFactory或ApplicationContext
  • 该容器具有以下功能
  • 1、容器可以创建和销毁组件对象(等价于原来工厂的作用)
  • 2、容器可以采用不同模式创建对象
  • 3、容器具有IOC机制实现
  • 4、容器具有AOP机制实现
  • a、Spring的基本应用
  • 1、如何讲一个Bean组件交给Spring容器
<!-- 添加组件的id的class属性(在applicationContext.xml中加上定义) -->
<bean id = "jdbcCostDAO" class = "com.shagou.JdbcCostDAO"
   ></bean>
  • 接口
public interface CostDAO {
    public void save();
    public void delete();
}
  • 测试类
public class JdbcCostDAO implements CostDAO {
    @Override
    public void save() {
        System.out.println("利用JDBC技术删除资费记录");
    }
    @Override
    public void delete() {
        System.out.println("利用JDBC技术添加资费记录");
    }
  • 获取Spring容器对象
public class CostDAOTest {
    @Test 
    public void test() {
        //获取Spring容器对象
        String conf = "/applicationContext.xml";
        //利用ac.getBean("标识符")方法获取容器中的Bean对象
        AbstractApplicationContext ac = new ClassPathXmlApplicationContext(conf);
        CostDAO costDao = (CostDAO)ac.getBean("jdbcCostDAO");
        costDao.save();
        costDao.delete();
    }
}
  • 测试对象的创建模式
@Test
    //测试对象的创建模式
    public void test1() {
        AbstractApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml");
        CostDAO costDao1 = (CostDAO)ac.getBean("jdbcCostDAO");
        CostDAO costDao2 = (CostDAO)ac.getBean("jdbcCostDAO");
        System.out.println(costDao1 == costDao2);
    }
<!-- 默认为singleton模式,可以通过<bean>的scope属性修改,以后在web程序中,通过扩展可以使用request,session等值 -->
<bean id = "jdbcCostDAO" scope = "singleton" class = "com.shagou.JdbcCostDAO"
   ></bean>
  • bean对象创建的时机
public  JdbcCostDAO() {
        //单例模式的Bean组件是在容器实例化时创建,
        //prototype是在调用getBean()方法时调用
        System.out.println("--创建CostDAO对象--");
    }
<!-- singleton模式可以利用<bean>元素的lazy-init = "true"属性将对象创建工作推迟到getBean() -->
<bean id = "jdbcCostDAO"  lazy-init = "true" 
  class = "com.shagou.JdbcCostDAO"
   ></bean>
  • 为bean对象指定初始化和销毁方法
//1、静态代码块 static{}
    public void myinit() {
        System.out.println("--初始化DAO对象--");
    }
    public void mydestory() {
        System.out.println("--释放DAO资源--");
    }
  • 释放资源需要在销毁容器时触发
@Test 
    public void test() {
        //获取Spring容器对象
        String conf = "/applicationContext.xml";
        //利用ac.getBean("标识符")方法获取容器中的Bean对象
        AbstractApplicationContext ac = new ClassPathXmlApplicationContext(conf);
        CostDAO costDao = (CostDAO)ac.getBean("jdbcCostDAO");
        costDao.save();
        costDao.delete();
        ac.close();//销毁容器
    }
<!-- 可以利用<bean>元素的init-Method属性,指定初始化方法,利用destory-method属性指定销毁方法
   指定的初始化方法是在构造方法调用后自动执行,指定的销毁方法是在容器close时触发,而且只适用于singleton模式的组件 -->
    <bean id = "jdbcCostDAO"
   init-method = "myinit" destroy-method = "mydestory" class = "com.shagou.JdbcCostDAO"
   ></bean>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值