使用Spring容器

1、BeanFactory

BeanFactory可视为Spring的BeanFactory容器,它的主要功能是为依赖注入(Dependency Injection,DI)提供支持。这个容器接口在org.springframework.beans.factory.BeanFactory中被定义。
BeanFactory是用于访问Spring Bean容器的跟接口,是一个单纯的Bean工厂,也就是常说的IoC容器的顶层定义,各种IoC容器是在其基础上为了满足不同需求而扩展的,包括经常使用的ApplicationContext。
在Spring中,有大量对BeanFactory接口的实现。其中,最常被使用的是XmlBeanFactory类。这个容器从一个XML文件中读取配置元数据,由这些元数据来生成一个被配置化的系统或者应用。

2、ApplicationContext

ApplicationContext是BeanFactory的子接口,使用它作为Spring容器更方便。它可以加载配置文件中定义的Bean,将所有的Bean集中在一起,当有请求的时候分配Bean。
ApplicationContext包含BeanFactory所有的功能,一般情况下,相对于BeanFactory,ApplicationContext会被推荐使用。BeanFactory仍然可以在轻量级应用中使用,如移动设备或者基于Applet的应用程序。
最常被使用的ApplicationContext接口实现如下。

  • FileSystemXMLApplicationContext:该容器从XML配置文件中加载已被定义的Bean。在这里,用户需要提供XML文件的完整路径给构造器。
  • ClassPathXmlApplicationContext:以类加载路径下的XML配置文件创建ApplicationContext实例。
  • WebXMLApplicationContext:该容器会在一个Web应用程序的范围内加载在XML文件中已被定义的Bean。

一般不会使用BeanFactory实例作为Spring容器,而是使用ApplicationContext实例作为容器,因此也把Spring容器成为Spring上下文。必须注意的是,在使用Spring框架的Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。Web服务器实例化ApplicationContext容器时,通常会使用基于ContextLoaderListener的方式来实现。

<<请使用文回答我或者给我介绍一下: 1.spring入门,使用spring容器创建stu对象 2.创建dao、service层接口及类。使用Spring容器练习依赖注入,模拟保存学生 首先,我们来了解Spring入门和使用Spring容器创建对象的步骤: 1. Spring 入门: Spring一个开源的 Java 平台,它最初是为了解决企业应用开发的复杂性而创建的。Spring 框架提供了一个全面的编程和配置模型,能够在 Java 环境下开发任何类型的应用程序。 2. 使用Spring容器创建stu对象: 在Spring框架容器是核心,负责创建对象,配置对象,并管理对象(即依赖注入)。以下是一个简单的例子,展示如何使用Spring容器创建一个简单的Student对象: ```java // Student.java public class Student { private String name; private int age; // 省略getter和setter方法 } // applicationContext.xml <beans> <bean id="student" class="com.example.Student"> <property name="name" value="张三"/> <property name="age" value="20"/> </bean> </beans> ``` 在上述的Spring配置文件`applicationContext.xml`,我们定义了一个ID为`student`的bean,它代表了一个Student对象,并注入了name和age属性。 接下来,我们来看看创建DAO、Service层接口及类,并使用Spring容器进行依赖注入的步骤: 1. 创建DAO层接口及实现类: ```java // StudentDao.java public interface StudentDao { void save(Student student); } // StudentDaoImpl.java public class StudentDaoImpl implements StudentDao { public void save(Student student) { // 实现保存学生信息的逻辑 } } ``` 2. 创建Service层接口及实现类: ```java // StudentService.java public interface StudentService { void saveStudent(Student student); } // StudentServiceImpl.java public class StudentServiceImpl implements StudentService { private StudentDao studentDao; public void setStudentDao(StudentDao studentDao) { this.studentDao = studentDao; } public void saveStudent(Student student) { studentDao.save(student); } } ``` 在`StudentServiceImpl`类,我们通过setter方法注入了`StudentDao`的实现。 3. 在Spring配置文件配置DAO和Service,并实现依赖注入: ```xml <beans> <!-- 配置DAO --> <bean id="studentDao" class="com.example.StudentDaoImpl"></bean> <!-- 配置Service --> <bean id="studentService" class="com.example.StudentServiceImpl"> <property name="studentDao" ref="studentDao"/> </bean> <!-- 配置Student对象 --> <bean id="student" class="com.example.Student"> <property name="name" value="张三"/> <property name="age" value="20"/> </bean> </beans> ``` 4. 模拟保存学生: ```java // Main.java public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentService service = (StudentService) context.getBean("studentService"); Student student = (Student) context.getBean("student"); service.saveStudent(student); } } ``` 在上述主程序,我们通过Spring的上下文(ApplicationContext)加载配置文件,并从容器获取Service和Student对象,最后调用Service的方法来模拟保存学生信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值