Spring框架学习(一)

Spring概述

一、初识Spring

   Spring是分层的Java SE/EE应用full-stack轻量级开源编程,以IOC和AOP为核心,提供了展现层Spring MVC和持久性Spring JDBC以及业务层事务管理等众多的企业应用技术,还能整合开源世界众多的著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

                           Spring.io官网

什么是耦合

   耦合是程序之间的依赖关系,而依赖可分为类之间的依赖和方法之间的依赖。

什么是解耦

   解耦是降低程序之间的依赖关系,这是我们应该避免的。但仍然存在一些是我们所无法避免的。

   在实际开发中,我们应该做到编译期不依赖,运行时才依赖

解耦的思路
  1. 使用反射来创建对象,避免使用new关键字
  2. 通过配置文件来获取想要获取对象全限定类名
  • 工厂模式解耦(代码)
package factory;


import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class BeanFactory {
    //定义一个properties对象
    private static Properties props;
    //定义一个Map,用于我们创造的对象
    private static Map<String,Object> beans;
    //使用静态代码块为Properties赋值
    static {
        //实例化对象
        props=new Properties();
        //获取Properties文件的流对象
        try {
            InputStream in=BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties");
            props.load(in);
            //实例化容器
            beans=new HashMap<String, Object>();
            //取出配置文件中所有的key
            Enumeration keys=props.keys();
            while (keys.hasMoreElements()){
                //取出每个key
                String  key=keys.nextElement().toString();
                //根据key来获取value
                String beanPath=props.getProperty(key);
                //反射创建对象
                Object value=Class.forName(beanPath).newInstance();
                //把bean和value存入容器中
                beans.put(key,value);
            }
        }catch (Exception e){
            throw new ExceptionInInitializerError("初始化获得失败");
        }

    }

    public static Object getBean(String beanName){
        return beans.get(beanName);
    }
}

该bean的使用
图片转自黑马程序员教程

容器核心Core Container(IOC)
  • Bean
      在计算机英语中,有可重用组件的含义。这里需要跟Javabean做一区分,Javabean是用java语言编写的可重用组件,Javabean>>实体类 ,这里的Bean用于创建我们的Service和Dao对象的。
      配置文件分两种类型xmlproperties
  • Core
  • Content
  • SpEL
ioc的概念

   控制反转,将创建对象的权力交给框架,是框架的重要特性,并非面向对象编程的专用属于。它包括依赖注入和依赖查找。明确作用是削减计算机程序的耦合(解除我们代码中的依赖关系)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值