Spring工程搭建
环境准备
1)spring核心依赖
spring-core、spring-beans、spring-context
2)spring dao依赖(提供JDBCTemplate)
spring-jdbc、spring-tx
3)spring web依赖
spring-web、spring-webmvc
4)spring test依赖
spring-test
测试
package com.spring.context.basic;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/**
* @author PitterWang
* @create 2020/5/28
* @since 1.0.0
*/
public class Persion {
private Integer id;
private String name;
private String[] emails;
private Set<String> tels;
private List<String> addresses;
private Properties p;
private Map<String,String> qqs;
public Properties getP() {
return p;
}
public void setP(Properties p) {
this.p = p;
}
public Map<String, String> getQqs() {
return qqs;
}
public void setQqs(Map<String, String> qqs) {
this.qqs = qqs;
}
public List<String> getAddresses() {
return addresses;
}
public void setAddresses(List<String> addresses) {
this.addresses = addresses;
}
public Set<String> getTels() {
return tels;
}
public void setTels(Set<String> tels) {
this.tels = tels;
}
public String[] getEmails() {
return emails;
}
public void setEmails(String[] emails) {
this.emails = emails;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Persion() {
System.out.println("Persion.Persion");
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
在测试文件中,测试是否可以通过配置文件获取到Bean
package com.designpatterns;
import com.spring.context.basic.Persion;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 〈〉
*
* @author PitterWang
* @create 2020/5/28
* @since 1.0.0
*/
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
Persion persion = (Persion) applicationContext.getBean("persion");
System.out.println(persion.toString());
}
}
结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/13f7eae037fb75cdfcf3a13f0e5c33c0.png)
过程分析
BeanFactory
BeanFactory是基础类型的IOC容器,是管理bean容器的根接口,并提供了完整的IOC服务支持
简单来说BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean、调用生命周期等方法
ApplicationContext
ApplicationContext被称为应用上下文,是BeanFactory接口的子接口,在其基础上提供了其他的附加功能,扩展了BeanFactory接口
ClassPathXmlApplicationContext
ClassPathXmlApplicationContext是ApplicationContext的实现类,也在其基础上加了许多附加功能
该类从类路径ClassPath中寻找指定的XML配置文件,找到并完成对象实例化工作