SPRING01_概述、配置文件、bean实例化、依赖注入的方式、依赖注入的数据类型、分模块开发、API使用(四)

简介: SPRING01_概述、配置文件、bean实例化、依赖注入的方式、依赖注入的数据类型、分模块开发、API使用(四)

⑤. Bean的依赖注入的数据类型


  • ①. 普通数据类型(value) ②. 引用数据类型(ref) ③. 集合数据类型


  • ②. 基本数据类型


  public class UserDaoImpl implements UserDao {
  private String company;
      private int age;
      public void setCompany(String company) {
          this.company = company;
      }
      public void setAge(int age) {
          this.age = age;
      }
      public void save() {
          System.out.println(company+"==="+age);
          System.out.println("UserDao save method running....");   
      }
  }


  <bean id="userDao" class="com.xiaozhi.dao.impl.UserDaoImpl">
      <property name="company" value="TANGZHI"></property>
      <property name="age" value="15"></property>
  </bean>


  • ③. 引用数据类型(UserService中注入了UserDao)


  • ④. 集合类型的注入


  //(1).集合数据类型(List<String>)的注入
  public class UserDaoImpl implements UserDao {
    private List<String> strList;
    public void setStrList(List<String> strList) {
      this.strList = strList;
    }
    public void save() {
          System.out.println(strList);
          System.out.println("UserDao save method running....");
    }
  }
  <bean id="userDao" class="com.xiaozhi.dao.impl.UserDaoImpl">
      <property name="strList">
          <list>
              <value>aaa</value>
              <value>bbb</value>
              <value>ccc</value>
          </list>
      </property>
  </bean>


  //(2). 集合数据类型(List<User>)的注入
  public class UserDaoImpl implements UserDao {
    private List<User> userList;
    public void setUserList(List<User> userList) {
    this.userList = userList;  
   }
  public void save() {
    System.out.println(userList);
    System.out.println("UserDao save method running....");
    }
  }
  <bean id="u1" class="com.xiaozhi.domain.User"/>
  <bean id="u2" class="com.xiaozhi.domain.User"/>
  <bean id="userDao" class="com.xiaozhi.dao.impl.UserDaoImpl">
      <property name="userList">
          <list>
              <bean class="com.xiaozhi.domain.User"/>
              <bean class="com.xiaozhi.domain.User"/>
              <ref bean="u1"/>
              <ref bean="u2"/>       
          </list>
      </property>
  </bean>


  //(3). 集合数据类型( Map<String,User> )的注入
  public class UserDaoImpl implements UserDao {
      private Map<String,User> userMap;
      public void setUserMap(Map<String, User> userMap) {
      this.userMap = userMap;
      }    
  public void save() {      
    System.out.println(userMap);
    System.out.println("UserDao save method running....");
    }
  }
  <bean id="u1" class="com.xiaozhi.domain.User"/>
  <bean id="u2" class="com.xiaozhi.domain.User"/>
  <bean id="userDao" class="com.xiaozhi.dao.impl.UserDaoImpl">
      <property name="userMap">
          <map>            
              <entry key="user1" value-ref="u1"/>
              <entry key="user2" value-ref="u2"/>
          </map>
      </property>
  </bean>


  //(4). 集合数据类型(Properties)的注入
  public class UserDaoImpl implements UserDao {
      private Properties properties;
      public void setProperties(Properties properties) {
          this.properties = properties;
      }
    public void save() {
      System.out.println(properties);
      System.out.println("UserDao save method running....");
    }
  }
  <bean id="userDao" class="com.xiaozhi.dao.impl.UserDaoImpl">
      <property name="properties">
          <props>
              <prop key="p1">aaa</prop>
              <prop key="p2">bbb</prop> 
              <prop key="p3">ccc</prop>
          </props>
      </property>
  </bean>



相关文章
|
1月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
210 0
|
10天前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
202 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
1月前
|
缓存 Java API
Spring WebFlux 2025 实操指南详解高性能非阻塞 API 开发全流程核心技巧
本指南基于Spring WebFlux 2025最新技术栈,详解如何构建高性能非阻塞API。涵盖环境搭建、响应式数据访问、注解与函数式两种API开发模式、响应式客户端使用、测试方法及性能优化技巧,助你掌握Spring WebFlux全流程开发核心实践。
380 0
|
3月前
|
Java API 网络架构
基于 Spring Boot 框架开发 REST API 接口实践指南
本文详解基于Spring Boot 3.x构建REST API的完整开发流程,涵盖环境搭建、领域建模、响应式编程、安全控制、容器化部署及性能优化等关键环节,助力开发者打造高效稳定的后端服务。
478 1
|
5月前
|
存储 人工智能 Java
Spring AI与DeepSeek实战四:系统API调用
在AI应用开发中,工具调用是增强大模型能力的核心技术,通过让模型与外部API或工具交互,可实现实时信息检索(如天气查询、新闻获取)、系统操作(如创建任务、发送邮件)等功能;本文结合Spring AI与大模型,演示如何通过Tool Calling实现系统API调用,同时处理多轮对话中的会话记忆。
1056 57
|
10月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
265 2
|
11月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
156 4
|
11月前
|
IDE Java API
基于Spring Boot REST API设计指南
【10月更文挑战第4天】 在现代的软件开发中,RESTful API已经成为了构建网络应用的标准之一。它通过HTTP协议提供了与资源交互的方式,使得不同的应用程序能够进行数据交互。Spring Boot作为一个功能强大的框架,它简化了配置和开发流程,成为了构建RESTful API的理想选择。本文将详细介绍如何在Spring Boot中设计和实现高质量的RESTful API,并提供一些最佳实践。
191 1
|
11月前
|
缓存 Java API
基于Spring Boot REST API设计指南
【10月更文挑战第11天】 在构建现代Web应用程序时,RESTful API已成为一种标准,使得不同的应用程序能够通过HTTP协议进行通信,实现资源的创建、读取、更新和删除等操作。Spring Boot作为一个功能强大的框架,能够轻松创建RESTful API。本文将详细介绍如何在Spring Boot中设计和实现高质量的RESTful API。
366 61
|
9月前
|
存储 安全 Java
Spring Boot 编写 API 的 10条最佳实践
本文总结了 10 个编写 Spring Boot API 的最佳实践,包括 RESTful API 设计原则、注解使用、依赖注入、异常处理、数据传输对象(DTO)建模、安全措施、版本控制、文档生成、测试策略以及监控和日志记录。每个实践都配有详细的编码示例和解释,帮助开发者像专业人士一样构建高质量的 API。
275 9