初识Spring

本文介绍了Spring框架,它是主流Java Web开发框架,以Ioc和Aop为内核,具有方便解耦、集成框架等优点。阐述了Spring的体系结构,介绍了Ioc容器,包括BeanFactory和ApplicationContext及其实现类。还给出了第一个Spring程序的创建步骤,如创建项目、接口、配置文件和测试类等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring是什么

相关概念
Spring是另一个主流的java Web开发框架,它是一个轻量级的应用框架,以Ioc(控制反转)和Aop(面向切面编程)为内核
Spring的优点
1)方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给Spring管理
2)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持
3)降低Java EE API的使用难度
Spring对Java EE开发中非常难使用的一些API都提供了封装,使这些API的难度大大降低
4)方便程序的测试
Spring支持JUnit4,可以通过注解方便的测试Spring程序
5)AOP编程的支持
Spring提供面向切面的编程,可以方便的实现对程序进行权限拦截和运行监控等功能
6)声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程

Spring的体系结构

在这里插入图片描述

Spring Ioc容器

什么是Ioc?
Ioc是指在程序开发中,实例的创建不再由调用者管理,而是由Spring容器创建。Spring容器会负责控制程序之间的关系,而不是由程序代码直接控制,因此,控制权由程序代码转移到了Spirng容器中,控制权发生了反转,这就是Spring的Ioc思想
Spring提供了两种Ioc容器,分别为BeanFactory和ApplicationContext
BeanFactory
BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用他们的生命周期方法
ApplicationContext
ApplicationContext是BeanFactory的子接口,也被称为应用上下文,它不仅提供了BeanFactory的所有功能,还添加了对i18n(国际化)、资源访问、事件传播等方面的良好支持
ApplicationContext接口有两个常用的实现类,具体如下:
1)ClassPathXmlApplicationContext
该类从类路径ClassPath中寻找指定的XML配置文件,找到并装载完成ApplicationContext的实例化工作,具体如下所示。

  ApplicationContext applicationContext=new ClassPathXmlApplicationContext(String configLocation);
  

在上述代码中,configLocation参数用于指定Spring配置文件的名称和位置,如applicationContext.xml
2)FileSystemXmlApplicationContext
该类从指定的文件系统路径中寻找指定的xml配置文件,找到并装载完成ApplicationContext的实例化工作它与 ClassPathXmlApplicationContext 的区别是:在读取 Spring 的配置文件时,FileSystemXmlApplicationContext 不再从类路径中读取配置文件,而是通过参数指定配置文件的位置,它可以获取类路径之外的资源

第一个Spring程序

创建项目
创建web项目,将所需的jar包复制到web目录中,并添加到类路径下
在这里插入图片描述
创建PersonDao接口

package com.mengma.ioc;

public interface PersonDao {
    public void add();
}

创建接口的实现类PersonDaoImpl

package com.mengma.ioc;

public class PersonServiceImpl implements PersonService {
    //定义接口声明
    private PersonDao personDao;
    //提供set方法,用于依赖注入
    public void setPersonDao(PersonDao personDao){
        this.personDao=personDao;
    }
    @Override
    public void addPerson() {
        personDao.add();
        System.out.println("addPerson()执行了...");
    }
}

创建Spring配置文件
在src目录下创建Spring的核心配置文件ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
    <!-- 由 Spring容器创建该类的实例对象 -->
    <bean id="personDao" class="com.mengma.ioc.PersonDaoImpl" />
</beans>

编写测试类

package com.mengma.ioc;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class FirstTest {
    @Test
    public void test1() {
          //定义Spring配置文件的路径
        String xmlPath="applicationContext.xml";
        //初始化Spring容器,加载配置文件
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
        //通过容器获取PersonDao的实例
        PersonDao personDao=(PersonDao)applicationContext.getBean("personDao");
        //调用PersonDao的add方法
        personDao.add();
        }
    }

上述代码中,首先定义了Spring容器的配置文件的路径,然后定义了Spring容器,接下来通过了Spring容器获取了PersonDao实例,调用了add()方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值