Spring学习笔记

1. Spring简介

1.1 Spring的优点

  • 轻量级框架
  • IOC容器:控制反转
  • AOP切面:面向切面编程
  • 对事务的支持
  • 对框架的支持

1.2 Spring主要内容

Spring学习笔记_第1张图片
Spring主要内容

1.3 IOC:inversion of control 控制反转

  • 对象由原来的程序本身创建变为了程序接收对象。
  • 程序员主要精力集中于业务实现
  • 实现了service层和dao层的解耦工作:service层和dao层没有直接以来关系,如果dao层的实现发生改变,应用本身不变。

2.Spring入门和IOC

2.1 Hello,Spring

  • 导入相关jar包


    Spring学习笔记_第2张图片
    相关jar包
  • 编写spring配置文件(beam.xml)


    
    
        
    

  • 编写Hello.java
public class Hello {
    private String name;
    
    public void setName(String name) {
        this.name = name;
    }
    
    public void show() {
        System.out.println("hello" + name);
    }
}
  • 测试
public class Test {
    
    public static void main(String[] args) {
        // 解析beans.xml文件 生成管理相应的bean对象
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Hello hello = (Hello) context.getBean("hello");
        hello.show();
    }
    
}
  • 总结:上述的内容就叫做控制反转
    ①控制的内容:指谁来控制对象的创建,传统应用的对象创建是程序本身,使用sping后,sping可以控制对象的创建。
    ②反转:由主动创建对象变为被动接收。
    ③控制反转——依赖注入。
    ④IOC的实现是由ioc容器实现的:BeanFactory。

2.2 IOC创建对象的3中方式

  • 通过无参构造方法创建
    User.java
public class User {
    private String name;
    public User() {
        System.out.println("User的无参构造方法!");
    }
    public void show() {
        System.out.println("name=" + name);
    }
}

bean.xml

    
        
    
  • 通过有参构造方法创建
    User.java
public class User {
    private String name;
    public User(String name) {
        System.out.println("User的有参构造方法!");
        this.name = name;
    }
    public void show() {
        System.out.println("name=" + name);
    }
}

bean.xml



    



    



    

  • 通过工厂方法来创建
  • 静态工厂对象
public class UserStaticFactory {    
    public static User newInstance(String name) {
        return new User(name);
    }   
}

bean.xml


    

  • 动态工厂对象
public class UserDynamicFactory {
    public User newInstance(String name) {
        return new User(name);
    }   
}
  • Beans.xml




    

3. Spring的配置文件详解

3.1 alias别名

alias:为bean设置别名,bean可以设置多个别名





    

3.2 bean的配置

    
    
        
    

3.3 团队协作开发

 

4. 依赖注入

4.1 依赖注入-dependency injection

依赖:指bean对象创建依赖于容器,bean对象的依赖资源。
注入:只bean对象的依赖资源由容器来设置和装配。

4.2 Spring注入:构造器注入

参见ioc创建对象的笔记

4.3 Spring注入:Setter注入

  • 常量注入

    

  • bean注入


  • 数组注入


    
        红楼梦
        西游记
        三国演义
        水浒传
    

  • list注入


    
        足球
        篮球
    

  • map注入


  
    
    
      建设银行
      654321
    
  

  • set注入


  
    value>王者荣耀
    炉石传说
    LOL
  

  • null注入


  

  • Properties注入


  
    20171120001
    
  

  • p命名空间注入


  • c命名空间注入



你可能感兴趣的:(Spring学习笔记)