1.Bean对象
spring的核心功能:创建并维护java对象(称为bean对象),也是Spring容器管理的基本数据。
一个容器可以管理一个或者多个Bean对象(Spring管理的bean对象都是通过Configuration metadata配置 的对象。例如:基于xml文件配置的每一个标签,spring容器会维护一个bean对象与之对应)
Note:spring容器支持xml配置,java_config和基于注解的配置。
命名bean :
配置bean时 :
id和name都是用来给bean给标识符的(我们称为bean的名字),getBean()方法中可以传递这个id/name 获取bean对象。
差别 :
id:唯一标识符,只能有一个值,
name:可以有很多个值。
例如:
初始化容器,获取bean对象:
如果需要给bean起别名,可以使用:
默认情况下,Spring容器在进行初始化的时候,会将所有配置好的Bean标记,自动创建并维护起来。针 对每一个bean标记维护一个实例。
2.Bean创建
构造方法
对于一些简单的对象,我们可以直接通过调用 构造器 进行构建
无参构造器:
<?xml version="1.0" encoding="UTF-8"?> // user1,u2,u3是三个名字. ApplicationContext ac = new ClassPathXmlApplicationContext( "ioc/day1/first.xml"); System.out.println("---------------"); Object obj = ac.getBean("user"); //id写啥这这里就用啥,如果写的时’user,a‘,那么取值时 就只能使用user,a取值。 System.out.println("obj:"+obj); obj = ac.getBean("uf"); //是user的别名,取出来的是同一个对象。 System.out.println("obj:"+obj); obj = ac.getBean("u2"); //u2是通过name定义的bean的其中一个名字。 System.out.println("obj:"+obj); obj = ac.getBean("u3"); //u3和u2取到同一个值。 System.out.println("obj:"+obj); 有参构造器: Note:这种也是我们的依赖注入中的构造注入方式。 5.2.2 工厂方法 对于一些复杂的,没有办法直接通过构造器构建,可以创建 工厂 方法构建。例如:Connection对 象 静态工厂 : 代码实现: 配置方式: package ioc.day02.staticFactory; import java.sql.Connection; import java.sql.DriverManager; public class StaticConnectionFactory { private static String driver = "oracle.jdbc.driver.OracleDriver"; private static String url = "jdbc:oracle:thin:@localhost:1521:xe"; private static String user = "sxnd"; private static String password = "sxnd"; public static Connection getConnec