【Spring 】Bean配置详解

spring概念

简单来说,spring就是一个用来放置对象和及其依赖关系的容器.

  • IOC Inversion of Control 控制反转. 指的是 对象的创建权反转(交给)给 Spring.
    作用是实现了程序的解耦合.
  • DI Dependency Injection 依赖注入.需要有 IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去
  • AOP 对程序进行增强:不修改源码的情况下 可以进行权限校验,日志记录,性能监控,事务控制 类似python中的装饰器.

spring入门

  1. 创建 web 项目, 引入 Spring 的开发包
    目前我们只要关注core,而不需要使用其他扩展
【Spring 】Bean配置详解_第1张图片
【Spring 】Bean配置详解_第2张图片

2.引入相关配置文件
在src目录下新建applicationContext.xml文件
引入约束:spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html



3.编写相关的类

public interface UserDao {
  public void sayHello();
}
public class UserDaoImpl implements UserDao {
  @Override
  public void sayHello() {
    System.out.println("Hello Spring...");
  }
}

4.完成配置
在applicationContext.xml中添加

5.编写测试程序

@Test
// Spring 的方式:
public void demo2(){
  // 创建 Spring 的工厂类:
  ApplicationContext  applicationContext  =  new
  ClassPathXmlApplicationContext("applicationContext.xml");
  // 通过工厂解析 XML 获取 Bean 的实例.
  UserDao userDao = (UserDao) applicationContext.getBean("userDao");
  userDao.sayHello();
}

spring 工厂即容器

  • ApplicationContext
【Spring 】Bean配置详解_第3张图片
  • BeanFactory( 过时)
【Spring 】Bean配置详解_第4张图片
  • BeanFactory 和 ApplicationContext 区别

BeanFactory :是在 getBean 的时候才会生成类的实例.
ApplicationContext :在加载 applicationContext.xml(容器启动)时候就会创建.

Spring Bean的相关配置

  • id和name标签属性的配置

id : 给Bean一个唯一ID,必须以字母开始,可以使用字母、数字、连字符、
下划线、句话、冒号,不能出现特殊字符.

name: 给Bean 起个名字,可以重复,可以出现特殊字符

  • scope标签属性:Bean是否单例
  • singleton :默认值,单例的.
  • prototype :多例的.
  • request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
  • session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
  • globalSession :WEB 项目中,应用在 Porlet 环境.如果没有 Porlet 环境那么globalSession相当于 session.
  • Bean的生命周期标签属性配置

通过配置标签上的 init-method 作为 Bean 的初始化的时候执行的方法,配置 destroy-method作为 Bean 的销毁的时候执行的方法。
销毁方法想要执行,需要是单例创建的 Bean 而且在工厂关闭的时候,Bean 才会被销毁.

  • Spring生成Bean的三种方式(了解)
  • 无参数的构造方法的方式


  • 静态工厂实例化的方式
public class Bean2Factory {
  public static Bean2 getBean2(){
    return new Bean2();
  }
}


  • 实例工厂实例化的方式
public class Bean3Factory {
  public Bean3 getBean3(){
    return new Bean3();
  }
}


  • Spring Bean的属性注入
  • 构造方法的方式注入属性





  • set方法的方式注入属性(掌握)





  • SpEL的方式的属性注入(掌握 可以引用另一个类的属性)


  
  


  
  


引用了另一个类的属性


  
  

  • 对象类型的注入


  

  

  • 注入复杂类型





会希
冠希
天一




  
    芙蓉
    如花
    凤姐
  



  
    
    
    
  



  
    root
    123
  


Spring的分配置文件的开发

在一个配置文件中包含另一个配置文件:

你可能感兴趣的:(【Spring 】Bean配置详解)