竞价单页 网站,洛谷网站中小玉文具怎么做,沈阳中小企业网站制作,移动登录网页模板免费下载目录
创建 Spring 项目
1.创建 Maven 项目
2.添加 Spring 依赖
将 Bean 对象存储到 Spring 容器中
创建 Bean
存储 Bean
ApplicationContext 获取 Bean
BeanFactory 获取 Bean
ApplicationContext 和 BeanFactory 的区别
获取 Bean 的三种方式
根据 Bean id 获取…目录
创建 Spring 项目
1.创建 Maven 项目
2.添加 Spring 依赖
将 Bean 对象存储到 Spring 容器中
创建 Bean
存储 Bean
ApplicationContext 获取 Bean
BeanFactory 获取 Bean
ApplicationContext 和 BeanFactory 的区别
获取 Bean 的三种方式
根据 Bean id 获取
根据 Bean 类型获取
根据 Bean 类型 和 id 获取 创建 Spring 项目 1.创建 Maven 项目 在添加 Spring 依赖之前我们需配置好 maven 国内源可点击下方链接进行配置 idea 配置 Maven 国内源 2.添加 Spring 依赖 dependencies!-- https://mvnrepository.com/artifact/org.springframework/spring-context --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.20/version/dependency/dependencies 创建一个启动类 将 Bean 对象存储到 Spring 容器中 创建 Bean 在 Java 中一个对象如果被使用多次就可以称之为 Bean public class Student {public void sayHi() {System.out.println(hi student);}
} 按照下图格式将 Student 类放在 demo 包中 存储 Bean 创建一个配置文件 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contenthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd/beans 将 Bean 存储到 Spring 容器中 ApplicationContext 获取 Bean import com.spring.demo.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;//启动类
public class App {public static void main(String[] args) {
// 得到 Spring 上下文
// 初始化参数需跟 resource 目录下的配置文件名相同ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);
// 从 Spring 容器中获取 Bean 对象Student student (Student) context.getBean(student);
// 使用 Bean student.sayHi();}
} 运行结果 BeanFactory 获取 Bean import com.spring.demo.Student;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;public class App2 {public static void main(String[] args) {
// 得到 Spring 上下文对象BeanFactory beanFactory new XmlBeanFactory(new ClassPathResource(spring-config.xml));
// 从 Spring 容器中获取 bean 对象Student student (Student) beanFactory.getBean(student);
// 使用 Beanstudent.sayHi();}
} 运行结果 成功从 Spring 容器中获取到 Bean 对象 并 调用其方法 ApplicationContext 和 BeanFactory 的区别 ApplicationContext 属于 BeanFactory 的子类 相同点: 均可获取到 Spring 上下文对象均为 Spring 的顶级接口 不同点 ApplicationContext 在 Spring 容器启动时就会被实例化和初始化他会在启动过程中创建和管理所有的 Bean 对象饿汉模式BeanFactory 只在需要获取 Bean 时才会被实例化它是一种延迟加载的机制懒加载 实例理解 我们再新增一个 Teacher 类并将其放入 spring-config.xml 中 public class Teacher {public Teacher() {System.out.println(Teacher 类构造方法被调用);}public void sayHi() {System.out.println(hi Teacher);}
} 使用 ApplicationContext 获取 Bean 对象 运行结果 使用 BeanFactory 获取 Bean 对象 运行结果 总结 由于 ApplicationContext 再启动时会预先实例化和初始化所有的 Bean 对象所以在容器启动时可能会花费较长时间和较多的内存但后期获取 Bean 对象时的效率更高BeanFactory 的延迟加载机制可以提供更快的启动时间和更低的内存消耗但后期获取 Bean 对象时的效率相对较低 获取 Bean 的三种方式 根据 Bean id 获取 根据 Bean 类型获取 如果 Spring 容器中存在多个类型匹配的 Bean 对象时就无法确定返回哪个Bean 对象从而会导致报错 实例理解 根据 Bean 类型 和 id 获取 相比于根据 Bean id 获取 无需进行类型的强转 相比于根据 Bean 类型获取 能指定获取同类型 Bean 对象