一,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插件等
<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 配置文件