Spring的基本应用

概述:Spring是由Rod Johnson组织开发的一个分层的java SE/EE一站式的轻量级开源框架,以IOC(控制反转)和AOP(面向切面)为核心,的开发模式。

注:喜欢的朋友可以关注公众号“JAVA学习课堂”系统学习相关技术,持续更新。

目录

1.Spring框架的优点:

2.Spring的体系结构:

3.Spring核心容器

4.Spring 的依赖注入

4.1依赖注入的实现


1.Spring框架的优点:

  • 非侵入式设计:它可以使应用程序代码对框架的依赖最小化。

  • 方便解耦、简化开发:将所有对象的创建和依赖关系交给Spring 的容器进行管理,降低组件之间的耦合性。

  • 支持AOP:运行将一些通用的任务,安全,事务,日志等进行集中处理。

  • 支持声明式事务处理:通过配置就可以完成对事务的管理。

2.Spring的体系结构:

spring采用的是分层架构,主要分为,Core Container、Data Access/Integration、Web、AOP、Instrumentation、Test.

3.Spring核心容器

spring提供了两种核心容器,分别是BeanFactory和ApplicationContext.

BeanFactory:提供了完整的ioc服务,BeanFactory是一个管理bean的工厂,主要负责初始化Bean,并调用生命周期的方法。

ApplicationContext:是BeanFactory的子接口,在运行的时候就初始化了所有的Bean,而BeanFactory只有在使用Bean的时候才会初始化

1.创建ApplicationContext接口实例的常见方法:

使用XML配置文件来定义beans,可以使用ClassPathXmlApplicationContext来加载这些配置

//将从类路径(classpath)中加载名为applicationContext.xml的XML配置文件。
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

 2.使用FileSystemXmlApplicationContext(XML配置):

ApplicationContext context = new FileSystemXmlApplicationContext("file:/path/to/your/applicationContext.xml");

 

4.Spring 的依赖注入

依赖注入(DI)与控制反转(Ioc)的含义相同,当以一个java对象需要调用类一个java对象时,调用者需要采用 "new 被调用者"来创建对象。

在使用Spring之后,实例对象不在是调用者创建,而是转换为spring容器来创建,容器负责控制程序间的关系,控制权由应用代码转换到了Spring容器,控制权反转了。 

4.1依赖注入的实现

  • Setter方法注入:使用Setter方法注入被依赖的对象,通过调用无参构造器的方式实例化Bean,调用Bean的Setter方法实现基于setter方法的依赖注入

  • 构造方法注入:使用构造方法注入被依赖的实例,每个参数代表着一个依赖。

1. 构造函数注入

首先,定义一个服务接口和一个实现类:


public interface MyService {  
    void doSomething();  
}  
  
public class MyServiceImpl implements MyService {  
    private final Dependency dependency;  
  
    // 通过构造函数注入依赖  
    public MyServiceImpl(Dependency dependency) {  
        this.dependency = dependency;  
    }  
  
    @Override  
    public void doSomething() {  
        // 使用依赖  
        dependency.someMethod();  
    }  
}  
  
public class Dependency {  
    public void someMethod() {  
        // 依赖的具体实现  
    }  
}

在Spring配置文件中(XML)进行配置:


<bean id="dependency" class="com.example.Dependency"/>  
<bean id="myService" class="com.example.MyServiceImpl">  
    <constructor-arg ref="dependency"/>  
</bean>

 2.Setter方法注入


public class MyServiceImpl implements MyService {  
    private Dependency dependency;  
  
    // 通过setter方法注入依赖  
    public void setDependency(Dependency dependency) {  
        this.dependency = dependency;  
    }  
  
    // ... 省略其他方法 ...  
}

在Spring配置文件中(XML)进行配置:


<bean id="dependency" class="com.example.Dependency"/>  
<bean id="myService" class="com.example.MyServiceImpl">  
    <property name="dependency" ref="dependency"/>  
</bean>

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值