学校网站设计流程公司门户网站建设公司
web/
2025/9/29 18:09:10/
文章来源:
学校网站设计流程,公司门户网站建设公司,网站建设登录,辽宁省建设厅安全员考试官方网站Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能#xff1a;
将对象存储到容器#xff08;Spring#xff09;中从容器中将对象取出来
接下来使用 Maven 方式来创建一个 Spring 项目#xff0c;创建 Spring 项目和 Servlet 类似
将对象存储到容器Spring中从容器中将对象取出来
接下来使用 Maven 方式来创建一个 Spring 项目创建 Spring 项目和 Servlet 类似 在 Java 语言中对象也叫做 Bean所以后面咱们再遇到对象就以 Bean 著称。
1.创建 Spring 项目
接下来使用 Maven 方式来创建一个 Spring 项目创建 Spring 项目和 Servlet 类似总共分为以下3步
创建⼀个普通 Maven 项目添加 Spring 框架支持spring-context、spring-beans添加启动类
1.创建一个普通 Maven 项目 2.添加 Spring 依赖
在项目的 pom.xml 中添加 Spring 框架的支持
dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.3.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion5.2.3.RELEASE/version/dependency/dependencies?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdtest-2023-11-15/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.3.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion5.2.3.RELEASE/version/dependency/dependencies/project3.创建启动类 2.将 Bean 对象存储到 Spring (IoC容器)
1.创建一个 Bean 对象 2.将 Bean 存储到 Spring 中
在创建好的项目中添加 Spring 配置文件 spring-config.xml将此文件放到 resources 的根目录下
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd/beans接下来再将 User 对象注册到 Spring 中就可以
bean iduser classcom.wjh.demo.UserService/bean3.从容器中获取 Bean 对象
1.得到 Spring 上下文对象 public class App {public static void main(String[] args) {//1.先得到 Spring 上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);}
}2.获取到 Bean 对象 public class App {public static void main(String[] args) {//1.先得到 Spring 上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);//2.得到 Beancontext.getBean(user);}
}
3.使用 Bean 对象
public class App {public static void main(String[] args) {//1.先得到 Spring 上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);//2.得到 Bean [依赖查找 - IoC 的一种实现]UserService userService (UserService) context.getBean(user);//3.使用 Bean 对象userService.sayHello();}
}4.方法2
public class App2 {public static void main(String[] args) {//1.得到 Spring 上下文对象BeanFactory context new XmlBeanFactory(new ClassPathResource(spring-config.xml));//2.获取 BeanUserService userService (UserService) context.getBean(user);//3.使用 BeanuserService.sayHello();}
}5.ApplicationContext 和 BeanFactory 的区别 保证线程安全问题: 1.使用锁 ( synchronized 锁升级的流程) 2.使用线程安全的容器 (底层锁实现) 3.ThreadLocal (本地线程变量) 相同点 :
都是容器管理对象,都可以获取到 Bean 对象
不同点:
ApplicationContext 属于 BeanFactory 的子类,ApplicationContext 拥有更多的功能(对国际化支持、资源访问支持、以及事件传播等方面的支持…)加载 Bean 机制不同: BeanFactory 懒加载,按需加载(使用一个 Bean 加载一个 Bean) ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象
我们加入一个 Student 类
public class App {public static void main(String[] args) {//1.先得到 Spring 上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);/* //2.得到 Bean [依赖查找 - IoC 的一种实现]UserService userService (UserService) context.getBean(user);//3.使用 Bean 对象userService.sayHello();*/}
} public class App2 {public static void main(String[] args) {//1.得到 Spring 上下文对象BeanFactory context new XmlBeanFactory(new ClassPathResource(spring-config.xml));/* //2.获取 BeanUserService userService (UserService) context.getBean(user);//3.使用 BeanuserService.sayHello();*/}
}6.getBean 方法的更多用法
根据名称获取 Bean 根据类型获取 Bean
public class GetBeanExample {public static void main(String[] args) {//1.得到上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);//2.获取 BeanUserService userService context.getBean(UserService.class);//3.使用 BeanuserService.sayHello();}
}区别就是:当有⼀个类型被重复注册到 spring-config.xml 中时只能使用根据名称获取了
根据 名称 类型 获取
public class GetBeanExample {public static void main(String[] args) {//1.得到上下文对象ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);//2.获取 BeanUserService userService context.getBean(user, UserService.class);//3.使用 BeanuserService.sayHello();}
}4.操作流程图
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84033.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!