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 配置文件

相关推荐
customer086 分钟前
【开源免费】基于SpringBoot+Vue.JS租房管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
小学鸡!9 分钟前
spring中使用@Validated,什么是JSR 303数据校验,spring boot中怎么使用数据校验
java·spring boot
呼啦啦啦啦啦啦啦啦12 分钟前
【JVM】深入了解Java虚拟机-------内存划分、类加载机制、垃圾回收机制
java·jvm
顾北辰2013 分钟前
基本算法——聚类
java·spring boot·机器学习
DARLING Zero two♡15 分钟前
【优选算法】Sliding-Chakra:滑动窗口的算法流(下)
java·数据结构·c++·算法·leetcode
m0_748245741 小时前
从 0 开始实现一个 SpringBoot + Vue 项目
vue.js·spring boot·后端
少年花朵1 小时前
Perl语言的软件工程
开发语言·后端·golang
A XMan.2 小时前
JSON结构快捷转XML结构API集成指南
xml·java·前端·json·php
小林爱2 小时前
【Compose multiplatform教程06】用IDEA编译Compose Multiplatform常见问题
android·java·前端·kotlin·intellij-idea·compose·多平台
炸鸡配泡面5 小时前
Qt 12.28 day3
java·开发语言