当前位置: 首页 > news >正文

昆山开发区网站制作电工培训技术学校

昆山开发区网站制作,电工培训技术学校,加盟网站制作,wordpress 充值记录Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能: 将对象存储到容器(Spring)中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似&a…

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能:

  • 将对象存储到容器(Spring)中
  • 从容器中将对象取出来

接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似,
在 Java 语言中对象也叫做 Bean,所以后面咱们再遇到对象就以 Bean 著称。

1.创建 Spring 项目

接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似,总共分为以下3步:

  1. 创建⼀个普通 Maven 项目
  2. 添加 Spring 框架支持(spring-context、spring-beans)
  3. 添加启动类

1.创建一个普通 Maven 项目

在这里插入图片描述

2.添加 Spring 依赖

在项目的 pom.xml 中添加 Spring 框架的支持

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency></dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>test-2023-11-15</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency></dependencies></project>

3.创建启动类

在这里插入图片描述

2.将 Bean 对象存储到 Spring (IoC容器)

1.创建一个 Bean 对象

在这里插入图片描述

2.将 Bean 存储到 Spring 中

在创建好的项目中添加 Spring 配置文件 spring-config.xml,将此文件放到 resources 的根目录下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

接下来,再将 User 对象注册到 Spring 中就可以

<bean id="user" class="com.wjh.demo.UserService"></bean>

在这里插入图片描述

在这里插入图片描述

3.从容器中获取 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 (本地线程变量)

相同点 :

  1. 都是容器管理对象,都可以获取到 Bean 对象

不同点:

  1. ApplicationContext 属于 BeanFactory 的子类,ApplicationContext 拥有更多的功能(对国际化支持、资源访问支持、以及事件传播等方面的支持…)
  2. 加载 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 方法的更多用法

  1. 根据名称获取 Bean

在这里插入图片描述

  1. 根据类型获取 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 中时,只能使用根据名称获取了

  1. 根据 名称 + 类型 获取
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.yayakq.cn/news/771099/

相关文章:

  • 免费建设企业网站网站建设推广合同书
  • 网站顶部地图代码怎么做做网站页面提供的图结构
  • 我有云服务器如何建站公司网站工商备案怎么做
  • 辽宁网站优化杭州规划建设网站
  • 公司建设网站的优势收录很快的推广网站
  • 网站模块划分规划长春火车站到龙嘉机场动车时刻表
  • wordpress伪静态规则nginx南宁关键词优化服务
  • 校园门户网站 建设方案seo优化好做吗
  • 曲阜建设局网站跨境外贸网
  • 育儿哪个网站做的好WordPress判断文章形式
  • 深圳华强北买手机便宜吗单页关键词优化费用
  • 学校网站策划书中美最新消息
  • dw做的网站怎么全屏代码导入wordpress
  • 设计高端网站南京当的网站
  • 新手学做网站需要注意的几点赣州网络
  • 如何建设vr网站网站建设为什么需要备案
  • 自己在家可以做网站吗汕头seo优化公司
  • 县信用平台网站建设情况网站商城具有哪些功能模块
  • 购物建设网站洛阳网电脑版
  • 网站做端口是什么wordpress单页淘宝客主题
  • 360网站咋做上海公关公司有哪些
  • 做微信网站的公司天津市工程建设招标信息网
  • 可以加外链的网站郑州妇科医院哪家排名比较好
  • 网站程序上传工具雨伞设计公司logo
  • 网站建设运营规划怎样辨别自己网站的好坏
  • 自己做淘客网站成本大吗版式设计排版
  • 怎么查网站是不是正规如何在自己电脑上搭建网站
  • 肇庆网站优化建设汕头 网站
  • 墨刀做网站网页做家装的有没有网站可以找工作
  • 网站内容优化细节网站建设个人实训报告