- 如果Bean没有id那么默认名会是“包名+类名+index号 - name属性中可以为Bean制定多个名称,每个名称之间用逗号或者分号隔开 - scope用来设定Bean实例的作用域,其属性值有多个 - singleton单例、prototype原型、request、session、global、Session、applicaton、websocket - 属性还有constructor-arg、property、ref、list、value ## 常用的实例作用域 - singleton单例 所有创建的bean都引用到一个的地址上面 - prototype原型 所有创建的bean都是独立的实例 ## 静态工厂实例化Bean applicationContext.xml ```xml ``` com.lansky.bean Boss.Java ```java package com.lansky.bean; import com.lansky.dao.CarDao; import java.util.List; import java.util.Map; public class Boss { private String name; private List hobby; private Map jobs; private CarDao car; public void setName(String name) { this.name = name; } public Boss(String name) { this.name = name; } public Boss(){} @Override public String toString() { return "Boss{" + "name='" + name + '\'' + ", hobby=" + hobby + ", jobs=" + jobs + ", car=" + car + '}'; } } ``` com.lansky.factory ```java package com.lansky.factory; import com.lansky.bean.Boss; public class BeanFactory { public static Boss createBoss(String name) { return new Boss(name); } } ``` test TestBoss.Java ```java import com.lansky.bean.Boss; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestBoss { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //非强制转换方式 Boss boss5 = ac.getBean("boss5",Boss.class); System.out.println(boss5); } } ``` ## 基于Annotation的装配 - @Component 用于描述Spring中的Bean,他是一个泛化的概念,仅仅表示一个组建。 - @Repository 用于将数据访问层DAO的类标识为Spring中的Bean - @Service 用于将业务层Service的类标识为Spring中的Bean - @Controller 用于将控制层Controller的类标识为Spring中的Bean - @Autowired - @Resource - @Qualifier Last modification:March 4, 2019 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 If you think my article is useful to you, please feel free to appreciate