首页 > 其他分享 >SpringIOC的注解使用

SpringIOC的注解使用

时间:2023-09-23 12:35:15浏览次数:40  
标签:SpringIOC name import age Integer 使用 注解 public String

1,实体类

Student.java
package com.mashibing.bean;

public class Student {
private Integer age;
private String name;

public Student() {
System.out.println("student");
}

public Student(Integer age, String name) {
this.age = age;
this.name = name;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
Teacher.java
package com.mashibing.bean;

public class Teacher {
private Integer age;
private String name;

public Teacher() {
System.out.println("teacher");
}

public Teacher(Integer age, String name) {
this.age = age;
this.name = name;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "Teacher{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
PersonController.java
package com.mashibing.controller;

import com.mashibing.dao.PersonDao;
import com.mashibing.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

@Controller
//@Scope(value = "prototype")
public class PersonController {

public PersonController() {
}

/**
* 通过@AutoWired注解能够完成自动注入的功能
* 是按照什么方式进行自动注入的呢?
* 默认情况下是按照ByType来进行装配的,如果找到直接赋值,找不到报错
* 如果有多个类型一样的bean对象,此时会按照id来进行查找,默认的id是类名首字符小写
* 如果找到了直接注入,如果找不到那么就报错
* <p>
* 如果你想通过名字进行查找,可以自己规定名称,使用注解@Qualifier
* <p>
* 当@AutoWired添加到方法上的时候,此方法在创建对象的时候会默认调用,同时方法中的参数会进行自动装配
*
* @Qualifier注解也可以定义在方法的参数列表中,可以指定当前属性的id名称 使用@Resource可以完成跟@AutoWired相同的功能,但是要注意他们之间的区别
* 1、@Resource是jdk提供的功能,@AutoWired是spring提供的功能
* 2、@Resource可以在其他框架中使用,而@AutoWired只能在spring中使用
* 换句话说:@Resource扩展性好,而@AutoWired支持的框架比较单一
* 3、@Resource是按照名称进行装配的,如果名字找不到,那么就使用类型
* 而@AutoWired是按照类型进行装配,如果类型找不到那么久使用名字进行查找
*/


@Autowired
//@Qualifier("personService")
private PersonService personService;

public void save(){
personService.save();
}

/*@Autowired
public void test(@Qualifier("personDao")PersonDao personDao123){
System.out.println("test");
personDao123.update();
}*/

}

标签:SpringIOC,name,import,age,Integer,使用,注解,public,String
From: https://www.cnblogs.com/shanqiang1/p/17724189.html

相关文章

  • 使用 cargo expand 查看被宏隐藏的代码
    使用cargoexpand查看被宏隐藏的代码使用VScode安装扩展RustMacroExpand需要安装以下软件:cargo-expandAcargocrateforeasierhandlingofcompilercommandsRustnightlycompiler,youcaninstallitwithrustuptoolchaininstallnightlycargoexpand简......
  • 【Java 基础篇】Java 方法使用详解:让你轻松掌握方法的奥秘
    如果你正在学习Java编程,方法是一个不可或缺的重要概念。方法允许你将代码组织成可重用的块,提高了代码的可维护性和可读性。在本篇博客中,我们将深入探讨Java方法的使用,从基础概念开始,逐步介绍如何定义、调用、传递参数、返回值、异常处理以及方法的最佳实践。无论你是编程的新手还是......
  • 【Java 基础篇】Java 数组使用详解:从零基础到数组专家
    如果你正在学习编程,那么数组是一个不可或缺的重要概念。数组是一种数据结构,用于存储一组相同类型的数据。在Java编程中,数组扮演着非常重要的角色,可以帮助你组织、访问和操作数据。在本篇博客中,我们将从零基础开始,深入探讨Java中的数组,让你从小白变成数组专家。什么是数组?在编程......
  • Delphi:cxGrid的使用方法
    Delphi:cxGrid的使用方法1.去掉cxgrid中抬头的box,在tableview1的ptionsview的groupbybox=false;2.在GRIDfooter中加入sum(列),tableview1的optionsview的footer=ture然后在cxGRid1的customize中的summary的footer.add需要合计的列kind=skSum3.去掉cxgrid中的过滤下拉......
  • 【Java 基础篇】Java 自然排序:使用 Comparable 接口详解
    在Java编程中,我们经常需要对对象进行排序。为了实现排序,Java提供了java.lang.Comparable接口,它允许我们定义对象之间的自然顺序。本篇博客将深入探讨如何使用Comparable接口来进行自然排序,包括接口的基本概念、使用示例以及一些常见问题的解决方法。什么是自然排序?自然排序......
  • 【教程】VIM的使用第六章-我的vim我做主,编写vim配置以及映射
    大家好,新的一章要开始了,之前的vim操作大家一定要经常练习,从这章开始之后我们就要更深入的学习vim了,把vim打造成自己想要的样子,做到我的vim我做主!编写vim配置什么是vim的配置,vim里有很多的设置,比如:setnumber设置行号之前的使用都是在Vim里临时设置,没法持久化,每次设置很烦Vim......
  • source insight项目导入和使用教程
    一、引入已存在的源代码项目1、Project下创建新项目 2、取一个项目名和一个项目存放文件路径(方便存放索引和一些设置) 3、选择你准备查看或修改的项目源代码选择源代码文件夹点击右边【addAll】弹出提示 includetoplevelsub-directories表示将添加第一层子目......
  • ubuntu上使用微信界面太小
    一开始:小小的也很可爱呢后来使用命令调整envWINEPREFIX="$HOME/.ukylin-wine/wechat"/usr/bin/ukylin-winewinecfg 进入wine设置界面将分辨率调高,设置虚拟桌面,就可以勉勉强强用了。 还是很难用!!!哭......
  • 手摸手图解 CodeWhisperer 的安装使用
    CodeWhisperer是亚⻢逊出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者......
  • 使用Cisco packet tracer验证交换机转发原理
    交换机的转发原理:交换机在收到数据帧后,记录帧的源MAC地址,在MAC地址表中查询目的MAC地址,进行转发。本文采用Ciscopackettracer验证交换机的转发原理模拟器:Ciscopackettracer8.2一、拓扑结构:二、设备基本配置设备IP:PC1为192.18.0.1;PC2为192.168.0.2;PC3为192.168.0.3设备MAC:PC1为......