Spring的xml以及注解的相关配置

本文介绍了Spring框架的基础知识,包括它的核心特性如IoC和AOP,并展示了如何导入Spring的jar包和创建测试类。接着,通过银行存取款场景,解释了如何在XML中配置bean以实现解耦。然后,转向了Spring的注解配置,通过在类上添加@Component和@Autowired注解简化了对象的创建和装配过程,降低了代码的耦合度。最后,强调了不断学习和巩固基础知识的重要性。
摘要由CSDN通过智能技术生成

Spring框架作为企业级应用框架已经完全的融入到了互联网各大项目中,框架中除了有利于提升开发效率外,里面的设计模式以及编码的思想也是值得我们去学习学习的,接下来我会从Spring最基础的搭建开始,慢慢的深入去学

  • Spring是什么

    Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:
    反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE企业应用开源框架。

  • Spring的jar包导入以及相关测试类的创建

    想要开始搭建Spring就应该先导入相关的Spring的jar包

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-beans</artifactId>
           <version>5.0.2.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-core</artifactId>
           <version>5.0.2.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>5.0.2.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-expression</artifactId>
           <version>5.0.2.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-aop</artifactId>
           <version>5.0.2.RELEASE</version>
      </dependency>
    

    Spring的jar包远不止这些,因为我们现在用到的就只有这几个jar包
    当我们项目在开发工具里面创建了,jar包都导入了的时候,我们就可以开始写相关的测试类
    在这里插入图片描述
    这次我们假设一个去银行存钱的场景,我们这里有一个业务需求,就是当我们输入银行账号密码的时候我需要查询账户的存 款是多少,并且我还需要存入金额,因为测试类中我们需要提 供两个方法,一个是查询金额的方法,一个是存钱的方法
    在这里插入图片描述
    AccountDao接口类里面写了两个方法分别是queryAccount()用于查询金额,saveAccount()用于存入金额,并且AccountDaoImpl实现了AccountDao接口

    测试类都写好了,接下来就是xml的配置

  • Spring配置xml

    我们需要在项目的resources目录下创建一个xml文件
    在这里插入图片描述
    配置文件都写好了,那接下来就是在AccountServiceImpl里面调用AccountDaoImpl里的方法了,按 照传统的方法,我们是直接在AccountServiceImpl 里面去new 一个AccountDaoImpl对象,比如这样

    在这里插入图片描述
    但是这样就造成了类与类之间的耦合性非常大,维护成本也相对来说比较的高,因此我们在使用Spring的时候是将对象交给Spring去创建,而Spring创建对象,我们就需要在xml里面去配 置相关的bean了

    我们现在需要用到AccountDaoImpl这个类对象,因为我们需要在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"
         xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="accountService" class="com.spring.service.impl.AccountServiceImpl"></bean>
    </beans>
    

    当在xml里面配置完这个信息之后,我们就可以去使用它了

    按照国际惯例,我们先在main方法中测试一下
    在这里插入图片描述
    我直接用ClassPathXmlApplicationContext这个类来加载xml文件,并通过getBean()方法来获取这个类对象

    好了通过了main方法的测试,之后我们直接在类里面放上这段代码,我们就可以直接用了
    在这里插入图片描述
    这样我们就把对象交给spring去创建,使类与类之间很好的解耦,之后我们在AccountServiceImpl里 面直接通过AccountDao对象去调用相关的方法

    但是我们这样去配置这样去写没问题,但是没有用到spring最便捷的写法,那就是通过注解的方式去 注入对象

  • Spring基于注解的配置

    使用注解可以极大简化开发,在使用注解之前我们需要更改下xml配置文件

     <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">
    
      <!-- 告知 spring 创建容器时要扫描的包 -->     
      <context:component-scan base-package="com.spring"></context:component-scan>
      </bean>
    

    我们除了在配置文件里面用到一些额外的约束外,还加了一段用于创建容器需要扫描的包,改完xml之后我们就可以改一下我们的测试代码了

    我们现在AccountDaoImpl类上加上一个@Component注解,并将这个类的id设置为accountDao,这样 当spring扫描到这个注解的时候就会创建类对象 在这里插入图片描述
    之后我们在AccountServiceImpl加上这样一段代码
    在这里插入图片描述
    我们在AccountServiceImpl类里面加上了AccountDao这个类,并在接口上加了一个@Autowired注解,这样当容器创 建AccountDaoImpl对象的时候,会将对象自动装配给accounDao,基于注解开发的代码将至此就搞完了,我们就可以快速的开发了

    总结:其实在开发中我们更注重的效率,因为我们会用很多的开源项目,比如Springboot, SpringCloud等等,但是这些开源项目用久了,很多的基础的东西就会忘了,基础的东西忘了就会导致很多的实现原理也会忘掉,以至于碰到很多的基础东西都会去百度,所以我们在工作的过程中要及时去巩固那些基础的知识(如果你是大牛,也可以不用去巩固),不管是为了技术温故而知新,还是为了跳槽找工作

学习用于止境,在未来的道路上请勇敢

我是哪吒,是一名北漂程序员

你的三连就是我创作最大的动力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值