案例04 基于注解的依赖注入案例

简介: 基于注解的依赖注入方式实现学生信息新增。

 基于注解的依赖注入方式实现学生信息新增。

1. 创建项目

Idea创建Java项目,项目名称为:case04-spring-student03。

2. 导入spring相关jar包

case04-spring-student03项目下创建lib目录,在lib目录下导入Jar包:

    • 核心包

    spring-core-5.3.25.jar

    spring-beans-5.3.25.jar

    spring-context-5.3.25.jar

    spring-expression-5.3.25.jar

      • AOP包

      spring-aop-5.3.25.jar

        • 测试包

        junit-4.6.jar

          • 依赖包

          commons-logging-1.2.jar

          3. 创建Spring配置文件

          src目录下创建applicationContext.xml配置文件。

          <?xmlversion="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--开启组件扫描--><context:component-scanbase-package="com.wfit"/></beans>


          4. 创建StudentService接口

          src目录下创建com.wfit.service包,此包目录下创建StudentService接口,声明addStudent方法。

          publicinterfaceStudentService {
          //新增学生信息publicvoidaddStudent();
          }


          5.创建StudentServiceImpl实现类

          src目录下创建com.wfit.service.impl包,此包目录下创建StudentServiceImpl实现类,实现addStudent方法。

          @Service//标注业务逻辑组件publicclassStudentServiceImplimplementsStudentService {
          @Autowired//@Autowired注解 完成自动配置privateStudentDaostudentDao;
          @OverridepublicvoidaddStudent() {
          //调用StudentDao中的saveStudent方法studentDao.saveStudent();
              }
          }


          6. 创建StudentDao类

          com.wfit.dao目录下创建StudentDao.java类

          @Repository//标注数据访问层publicclassStudentDao {
          //保存学生信息publicvoidsaveStudent(){
          System.out.println("保存学生信息成功!");
              }
          }


          7. 创建测试类

          src目录下创建com.wfit.test包,此包目录下创建TestStudent测试类。

          publicclassTestStudent {
          @Testpublicvoidtest(){
          //初始化Spring容器ApplicationContext,加载配置文件ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");
          //通过容器获取StudentServiceImpl实例StudentServicestudentService=applicationContext.getBean("studentServiceImpl",StudentService.class);
          studentService.addStudent();
              }
          }


          8. 执行结果



          目录
          相关文章
          |
          SQL 分布式计算 数据库
          【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
          【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
          662 0
          |
          11月前
          |
          设计模式 XML Java
          【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
          本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
          【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
          |
          11月前
          |
          人工智能 小程序 JavaScript
          【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
          本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
          |
          7月前
          |
          机器学习/深度学习 人工智能 前端开发
          SWEET-RL:8B小模型暴打GPT-4?Meta开源强化学习黑科技,多轮任务成功率飙升6%
          Meta最新开源的SWEET-RL框架通过优化多轮交互任务的信用分配机制,使Llama-3.1-8B模型在协作推理任务中的表现提升6%,性能达到顶尖大模型水平。
          379 33
          SWEET-RL:8B小模型暴打GPT-4?Meta开源强化学习黑科技,多轮任务成功率飙升6%
          |
          消息中间件 监控 大数据
          优化Apache Kafka性能:最佳实践与调优策略
          【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
          370 4
          |
          8月前
          |
          数据可视化 数据挖掘 BI
          Quick BI 使用体验报告
          Quick BI 使用体验报告
          210 3
          |
          SQL 数据库 开发者
          ClkLog埋点分析系统支持自定义SQL 查询
          本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
          ClkLog埋点分析系统支持自定义SQL 查询
          |
          9月前
          |
          监控 关系型数据库 MySQL
          云数据库:从零到一,构建高可用MySQL集群
          在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
          |
          域名解析 网络协议
          DNS服务工作原理
          文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
          1402 2
          DNS服务工作原理
          |
          11月前
          |
          Java 调度
          Java中的多线程编程与并发控制
          本文深入探讨了Java编程语言中多线程编程的基础知识和并发控制机制。文章首先介绍了多线程的基本概念,包括线程的定义、生命周期以及在Java中创建和管理线程的方法。接着,详细讲解了Java提供的同步机制,如synchronized关键字、wait()和notify()方法等,以及如何通过这些机制实现线程间的协调与通信。最后,本文还讨论了一些常见的并发问题,例如死锁、竞态条件等,并提供了相应的解决策略。
          149 3