spring入门基本介绍及注入方式---详细介绍

一,spring的简介

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 提供了许多功能强大且易于使用的特性,使得开发者能够更加轻松地构建可维护且可扩展的应用程序,简单来说: Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

1.1 spring能够干什么?

Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益

目的:解决企业应用开发的复杂性

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的 容器框架。

2.2 spring带来的好处?

2..2.1 提高开发效率:

Spring提供了大量的开发工具和库,简化了企业级应用的开发过程。它具有简单的配置、模块化的设计和丰富的文档,使得开发人员能够更快速地开发功能。

2.2.2 降低复杂性:

通过Spring的依赖注入和面向接口编程,开发者可以更容易地管理应用程序的复杂性。组件之间的解耦和模块化设计使得应用程序更易于理解、维护和扩展。

2.2.3 提高可测试性:

Spring的依赖注入模式使得应用程序的各个组件更容易进行单元测试。通过接口和模拟对象,开发者可以更方便地针对特定组件编写测试用例。

二,注入方式(三种)

第一种:set注入

定义一个接口并该接口定义一个方法 UserService

定义两个实现类去实现该接口重写其中的方法 UservServiceImpl1:

UservServiceImpl2:

会发现在不同的实现类,有着不同的方法,在后端将实例化当作看成一个属性,给该属性提供get set方法,并调用接口方法

两个后端Action

GoodsAction:

UserAction:

将spring部署到idea中,打开pom.xml,将url标签及build标签中间的部分改成下面代码

注意:后续步骤要连接网络 !,因为要下载spring插件等

XML 复制代码
  <properties>
    <spring.version>5.0.1.RELEASE</spring.version>
    <javax.servlet.version>4.0.0</javax.servlet.version>
    <junit.version>4.12</junit.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- 2、导入spring依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 5.1、junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- 5.2、servlet -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>${javax.servlet.version}</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

接下来根据下面步骤创建spring Config文件,如果没有该选项就是前面配置pom.xml文件没有连接网络,建议创建一个新的web项目,将包和类copy过去即可

spring.Config ioc容器的配置

最后 创建一个测试类来进行测试 text

运行结果:

第二种:构造注入

在第一种前提下使用无参有参构造及获取当前属性方法,方便在测试调用

spring.xml的配置:

在测试类调用属性方法

测试结果:

第三种:接口注入(自动装配)

3.1 byName

javaBean会根据属性名在spring的上下文中的bean的id进行查找,

有就会自动装配

修改spring-context.xml 配置文件

3.2 byType

JavaBean会以根据属性名对应的接口,在spring上下文中进行查找

查找方式:是根据spring上下文中是否有接口实现类进行匹配,只要有就自动配置

修改spring-context.xml 配置文件

相关推荐
神奇的程序员3 小时前
从已损坏的备份中拯救数据
运维·后端·前端工程化
Goldn.4 小时前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
oden4 小时前
AI服务商切换太麻烦?一个AI Gateway搞定监控、缓存和故障转移(成本降40%)
后端·openai·api
李慕婉学姐5 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_740043735 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
编织幻境的妖5 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
未若君雅裁5 小时前
JVM面试篇总结
java·jvm·面试
kk哥88996 小时前
C++ 对象 核心介绍
java·jvm·c++
招风的黑耳6 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
xunyan62346 小时前
面向对象(下)-接口的理解
java·开发语言