Spring框架及Bean详解

Spring框架及Bean详解

Spring框架是什么?

​ Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。

为什么使用Spring框架?

7大优点 解释或优点的意义
非侵入式设计的框架 使应用程序对框架依赖最小化
方便解耦、简化开发 对象的创建和依赖关系的维护交由Spring容器管理,降低组件之间的耦合性
支持AOP 允许安全、事务、日志等通用任务集中式处理,提高程序复用性
支持声明式事务处理 配置即可完成事务管理,无需手动编程
方便程序测试 支持Junit4
方便集成各种优秀框架 不排斥优秀的开源框架
降低Java EE API的使用难度 提供了难用API的封装,如JDBC

Spring体系结构

Spring体系结构
下面仅解析Core Container(核心容器)的部分模块,其他知识点自行找度娘吧!

模块名 解析
Beans 提供了BeanFactory,Spring将管理对象称为Bean(别误解为实体类)
Core核心模块 提供了Spring框架的基本组成部分,包括IoC和DI功能
Context上下文模块 建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。

怎么使用Spring框架?

Spring框架的主要功能是通过其核心容器实现的,Spring容器会负责控制程序之间的关系,而不是由程序代码直接控制。Spring为我们提供了两种核心容器,分别为BeanFactory和ApplicationContext。

  • BeanFactory
    其是基础类型的loC容器,提供了完整的loC服务支持。本质就是一个管理Bean的工厂,主要负责初始化各种Bean,并调用他们的生命周期。
    如何装配Bean?
    创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理,其加载配置信息的语法如下:
BeanFactory beanFactory =  new XmlBeanFactory(new FileSystemResource("F: /applicationContext.xml"))

此种加载方式不常用,了解即可,不再赘述。

  • ApplicationContext
    ApplicationContext是BeanFactory的子接口,是另一种常用的Spring核心容器。它由org.springframework.context.ApplicationContext接口定义,不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。创建ApplicationContext接口实例,通常采用两种方法,具体如下:

1)通过ClassPathXmlApplicationContext创建

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);

String configLocation:指定Spring配置文件的名称和位置。
ClassPathXmlApplicationContext会从类路径classPath中寻找指定的XML配置文件,找到并装载完成ApplicationContext的实例化工作。
2) 通过FileSystemXmlApplicationContext创建

 ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);
  • 在Java项目中,会通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器。
  • 重点来了:
    在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。
    Web服务器实例化ApplicationContext容器时,通常会使用ContextLoaderListener来实现,此种方式只需要在web.xml中添加如下代码: 先指定Spring配置文件的位置,多个配置文件时,以逗号分隔。再指定以ContestLoaderListener方式启动Spring容器。
<context-param>
          <param-name>contextConfigLocation</param-name> 
               <param-value>
                          classpath:spring/applicationContext.xml
               </param-value>
       </context-param>
             <listener>
               <listener-class>
                         org.springframework.web.context.ContextLoaderListener
               </listener-class>
       </listener>

程序示例

1.创建接口UserDao,然后在接口中定义一个say()方法。

 public interface UserDao {
   
   	public void say();
        }

2.创建UserDao接口的实现类UserDaoImpl,该类需要实现接口中的say()方法,并在方法中编写一条输出语句。

 public class UserDaoImpl implements UserDao {
   
	public void say() {
   
                         System.out.println("userDao say hello World !");
 	}
       }

3.创建Spring的配置文件applicationContext.xml,并在配置文件中创建一个id为userDao的Bean。

<?xml version="1.0" encoding="UTF-8"?>
        <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值