美文网首页
2018-10-23 Spring学习笔记(一)

2018-10-23 Spring学习笔记(一)

作者: 惜小八 | 来源:发表于2019-10-10 11:56 被阅读0次

参考文件https://www.jianshu.com/p/63431d63dd7e

一.Spring介绍

Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring主要两个有功能为我们的业务对象管理提供了非常便捷的方法。

DI(Dependency Injection,依赖注入)
AOP(Aspect Oriented Programming,面向切面编程)
每一个类实现了Bean的规范才可以由Spring来接管,bean的规范是:
必须是个公有(public)类
有无参构造函数
用公共方法暴露内部成员属性(getter,setter)

Spring的核心是控制反转(IOC)与面向切面编程(AOP)
控制反转:将对象的创建和维护交给Spring容器去实现(松耦合的目的)
面向切面编程: 通过预编译的方式在运行期使用动态代理的方式来实现的一种技术。

使用Spring的原因:在Spring上开发应用简单(可以控制对象的生命周期)、方便(因为管理了对象,所以获取对象实例方便)、快捷。
图片.png

二.IOC与Bean容器

(接口)
接口是一种对外的说明,说明了我会提供哪些功能,但是具体的实现要实现类去具体实现
虽然我们平常所指的Bean是一个符合特定规则的类,但是在IOC容器当中把所有的对象都称之为Bean
Spring对于Bean的注入方式主要有3种:构造方法注入,setter注入,基于注解的注入。

package com.csii.spring;

public interface InterfaceDemo {

    public void hello();
    
}
public class InterfaceImplDemo implements InterfaceDemo {

    public void hello() {
        
        System.out.println("Spring...");
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/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-3.2.xsd">
           
   //spring会将name值的每个单词首字母转换成大写,然后再在前面拼接上"set"构成一个方法名,然后去对应的类中查找该方法,通过反射调用,实现注入。
    <bean  id="interfacedemo" class="spring_demo.InterfaceImplDemo">
    
    </bean>           
</beans>
public class TestDemo {
    
    //默认的路径就是在src下面
    ApplicationContext ac=new ClassPathXmlApplicationContext("Beans.xml");

    @Test
    void test() {
        InterfaceImplDemo name=(InterfaceImplDemo) ac.getBean("interfacedemo");
        name.hello();

    }

}

(一)设置注入

public class InterfaceImplDemo implements InterfaceDemo {

    private SpringDemo demo;
    
    
    public SpringDemo getDemo() {
        return demo;
    }


    public void setDemo(SpringDemo demo) {
        this.demo = demo;
    }


    public void hello() {
        
        System.out.println("Spring...");
    }

}

使用ApplicationContext的子接口ClassPathXmlApplicationContext加载bean.xml的配置文件的时候,会读取bean.xml当中的内容,加载其中的类,实现注入

相关文章

网友评论

      本文标题:2018-10-23 Spring学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/hyyazftx.html