您的位置:首页 > 健康 > 美食 > 网络规划设计师教程第2版2021版pdf下载_公司网站模板大全_搜什么关键词比较刺激_网店培训

网络规划设计师教程第2版2021版pdf下载_公司网站模板大全_搜什么关键词比较刺激_网店培训

2025/3/13 1:55:11 来源:https://blog.csdn.net/m0_74363339/article/details/144569723  浏览:    关键词:网络规划设计师教程第2版2021版pdf下载_公司网站模板大全_搜什么关键词比较刺激_网店培训
网络规划设计师教程第2版2021版pdf下载_公司网站模板大全_搜什么关键词比较刺激_网店培训

目录

一、spring容器(DI)依赖注入的几种实现方式。

(1)手动注入。

(2)自动注入。

(3)图解如下。

二、spring容器实现(DI)依赖注入-setter注入方式。

(1)setter注入方式的基本介绍。

(2)setter注入方式的具体实现步骤。

0、demo(案例)准备工作(需知)。

1、定义需交给spring容器管理的bean类。

2、spring配置文件中配置bean。(XML)

重点标签<property name="?" ref="?">

3、使用spring容器来获取Bean的实例。

三、spring容器实现(DI)依赖注入-构造器注入方式。

(1)构造器注入方式的基本介绍。

(2)构造器注入方式的具体实现步骤。

0、demo(案例)准备工作(需知)。

1、定义需交给spring容器管理的bean类。

2、spring配置文件中配置bean。(XML)

重点标签<constructor-arg ref="?">

3、使用spring容器来获取Bean的实例。

四、spring容器实现(DI)依赖注入-自动装配方式。

(1)自动装配方式的基本介绍。

(2)自动装配方式的具体实现步骤。

0、demo(案例)准备工作(需知)。

1、定义需交给spring容器管理的bean类。

2、spring配置文件中配置bean与开启自动装配。(XML)

<1>属性autowire="byName"。

<2>属性autowire="byType"。

3、使用spring容器来获取Bean的实例。


  • 本篇博客围绕spring容器对(bean实例化)与(bean与bean之间依赖关系)的管理。

一、spring容器(DI)依赖注入的几种实现方式。

(1)手动注入。
  • 通过手动提供“需要依赖注入的属性与setter方法”完成注入操作。
  • 通过手动提供“有参构造方法且方法参数为需要依赖注入属性”完成注入操作。

(2)自动注入。
  • 内部运行时,还是依靠提供setter方法实现。
  • 需要使用属性"autowire"来实现。

(3)图解如下。
  • 具体是spring容器实现DI(依赖注入)的几种方式如下展示。

二、spring容器实现(DI)依赖注入-setter注入方式。

(1)setter注入方式的基本介绍。
  • 在spring框架中,DI(依赖注入)是一种实现IoC(控制反转)的重要机制
  • 它允许对象在创建时不必关心依赖对象的创建和获取,而是将这些依赖关系由外部容器(spring容器)来管理。spring提供了多种依赖注入的方式,其中setter注入是一种常见的方法。下面就来演示具体的实现步骤。

(2)setter注入方式的具体实现步骤。
0、demo(案例)准备工作(需知)。
  • 提供实体类"A"与"B"。分别位于demo包下。
  • 测试类MainApp。其中代码内容是关于使用spring容器加载配置文件并获取对应Bean。内部使用setter方法实现依赖注入,获取成员变量的实例化bean。
  • spring配置文件名:springBean.xml。

1、定义需交给spring容器管理的bean类。
  • 类"A"代码。在A类中创建成员变量(类"B")。提供setter方法,通过依赖注入(DI)方式获取该属性的实例化bean。
  • 提供成员方法save(),自身打印输出外,调用成员变量b(B类对象)的save()方法。
package com.fs.demo;public class A {//成员变量:B类属性(对象)B b;//提供setter方法public void setB(B b){this.b = b;}//A类save()方法public void save(){System.out.println("A save...");//通过依赖注入的方式获取B类的实例化bean//调用B类的save()方法b.save();}
}
  • 类"B"代码。类中提供成员方法save()。
package com.fs.demo;public class B {//B类save()方法public void save(){System.out.println("B save...");}
}
2、spring配置文件中配置bean。(XML)
  • 重点标签<property name="?" ref="?">。
  • name属性值一定要与使用依赖注入的类(A类)的成员变量名相同
<?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"><!--配置A类bean--><bean id="a" class="com.fs.demo.A"><!--name:对应A类中属性名 ref:依赖的类B(id)--><property name="b" ref="b"></property></bean><!--配置B类bean--><bean id="b" class="com.fs.demo.B"></bean></beans>

3、使用spring容器来获取Bean的实例。
  • 该操作主要在测试类(MainApp)中实现!
  • 通过spring容器ApplicationContext加载spring配置文件。再通过容器对象的getBean()方法获得相应的bean。最后调用方法完成操作。
package com.fs.test;import com.fs.demo.A;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp {public static void main(String[] args) {//使用IoC容器(ApplicationContext)获取spring容器管理的bean对象//1.创建容器对象。实例化时参数指定对应的配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springBean.xml");//2.通过<bean>标签的唯一标识id获取对应在spring容器已经配置的bean对象(生产A类的bean)Object obj = context.getBean("a");//3.强制类型转换A a = (A) obj;a.save();}
}
  • 程序运行结果与简单解释。

三、spring容器实现(DI)依赖注入-构造器注入方式。

(1)构造器注入方式的基本介绍。
  • 在spring框架中,构造器注入是一种依赖注入的方式。构造器注入方式通过构造器(有参构造方法)将依赖传递给Bean
  • 这种方式可以确保Bean在使用之前完全初始化,并且可以提供更好的编译时检查。
  • 下面就来演示具体的实现步骤。

(2)构造器注入方式的具体实现步骤。
0、demo(案例)准备工作(需知)。
  • 提供实体类"C"与"D"。分别位于demo2包下。
  • 测试类MainApp02。其中代码内容是关于使用spring容器加载配置文件并获取对应Bean。内部使用构造器实现依赖注入,获取成员变量的实例化bean。
  • spring配置文件名:springBean.xml。


1、定义需交给spring容器管理的bean类。
  • 类"C"代码。在C类中创建成员变量(类"D")。
  • 不需要提供setter方法。只需提供对应的有参构造方法,且参数的类型为成员变量(类"D")。通过构造器实现依赖注入(DI)方式再获取该成员属性的实例化bean。
  • 提供成员方法save(),自身打印输出外,调用成员变量d(D类对象)的save()方法。
package com.fs.demo2;
//类C
public class C {//只从代码上看,d好像空对象(null)//但最终因交给spring容器管理,通过DI完成bean的实例化D d;//构造器方式实现依赖注入(D类的成员变量d)public C(D d){this.d = d;}//类C的save()方法public void save(){System.out.println("C save...");//通过依赖注入的方式获取D类的实例化bean//调用D类的save()方法d.save();}
}
  • 类"D"代码。类中提供成员方法save()。
package com.fs.demo2;public class D {//类D的save()方法public void save(){System.out.println("D save...");}
}
2、spring配置文件中配置bean。(XML)
  • 重点标签<constructor-arg ref="?">。
  • 把之前spring配置文件里面的<property>标签换成<constructor-arg>标签即可。其中属性"ref"的值为依赖注入的类对应标签<bean>所绑定的id即可。

<?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"><!--配置C类bean--><bean id="c" class="com.fs.demo2.C"><!--使用构造器(有参构造)给成员变量D类对象d实现依赖注入(实例化bean)--><constructor-arg ref="d"></constructor-arg></bean><!--配置D类bean--><bean id="d" class="com.fs.demo2.D"></bean></beans>
3、使用spring容器来获取Bean的实例。
  • 该操作主要在测试类(MainApp2)中实现!
  • 通过spring容器ApplicationContext加载spring配置文件。再通过容器对象的getBean()方法获得相应的bean。最后调用方法完成操作。
package com.fs.test;import com.fs.demo2.C;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp02 {public static void main(String[] args) {//使用IoC容器(ApplicationContext)获取spring容器管理的bean对象//1.创建容器对象。实例化时参数指定对应的配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springBean.xml");//2.通过<bean>标签的唯一标识id获取对应在spring容器已经配置的bean对象(生产UserServiceImpl类的bean)Object obj = context.getBean("c");//3.强制类型转换C c = (C) obj;c.save();}
}
  • 程序运行结果与简单解释。

四、spring容器实现(DI)依赖注入-自动装配方式。

  • 此模块的代码明天再完善。

(1)自动装配方式的基本介绍。
  • 在spring框架中,自动装配(Autowiring)是一种自动解决Bean依赖关系的方式。
  • 其实自动装配方式实现依赖注入的操作底层还是依赖setter方法。不显式的指定依赖关系其实就是将之前繁琐的<property>这步简化,通过属性"autowire"指定值(byName/byType)。值"byName"或"byType"具体的用法下面会介绍。


  • spring容器可以在创建Bean时自动注入其他Bean的引用,而不需要显式地指定依赖关系。下面就来演示具体的实现步骤。

(2)自动装配方式的具体实现步骤。
0、demo(案例)准备工作(需知)。

  • 提供实体类"C"与"D"。分别位于demo2包下。
  • 测试类MainApp02。其中代码内容是关于使用spring容器加载配置文件并获取对应Bean。内部使用自动装配(底层依赖setter方法)实现依赖注入,获取成员变量的实例化bean。
  • spring配置文件名:springBean.xml。
1、定义需交给spring容器管理的bean类。
package com.fs.demo2;
//类C
public class C {D d;//自动装配底层还是依赖setter方法public void setD(D d) {this.d = d;}//类C的save()方法public void save(){System.out.println("C save...");//通过依赖注入的方式获取D类的实例化bean//调用D类的save()方法d.save();}
}
2、spring配置文件中配置bean与开启自动装配。(XML)
<1>属性autowire="byName"。
  • 该地方需要注意拥有成员变量的类的setter方法名有很密切的关系!
<?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"><!--配置C类bean--><!--通过autowire属性指定依赖。不需要显式地使用ref指定依赖关系--><bean id="c" class="com.fs.demo2.C" autowire="byName"></bean><!--配置D类bean--><bean id="d" class="com.fs.demo2.D"></bean></beans>
<2>属性autowire="byType"。
<?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"><!--配置C类bean--><!--通过autowire属性指定依赖。不需要显式地使用ref指定依赖关系--><bean id="c" class="com.fs.demo2.C" autowire="byType"></bean><!--配置D类bean--><bean id="d" class="com.fs.demo2.D"></bean></beans>
3、使用spring容器来获取Bean的实例。
package com.fs.test;import com.fs.demo2.C;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp02 {public static void main(String[] args) {//使用IoC容器(ApplicationContext)获取spring容器管理的bean对象//1.创建容器对象。实例化时参数指定对应的配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springBean.xml");//2.通过<bean>标签的唯一标识id获取对应在spring容器已经配置的bean对象(生产UserServiceImpl类的bean)Object obj = context.getBean("c");//3.强制类型转换C c = (C) obj;c.save();}
}
  • 运行结果。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com