spring注解注入详解

article/2025/11/10 17:26:45

1、Spring配置

<?xml version="1.0" encoding="UTF-8"?>
<beans   xmlns="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-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- init-method="getstart" 该类初始化执行的方法destroy-method="getdestroy"  该类被销毁时执行的方法scope="singleton" 默认为单列模式 可以  不写scope="prototype" 多列模式<property name="该类的属性名" value="给该类属性名注入的值"></property><import resource="user.xml"/> 若有多个配置文件可以用 inport --><!--  <bean id="car" class="com.sumeng.web.Car" init-method="getstart" destroy-method="getdestroy" scope=""><property name="carName" value="奥迪"></property></bean>  <import resource="user.xml"/>--><!--  通过 注解 注入  类扫描器 --><context:component-scan base-package="com.sumeng.web"></context:component-scan>
</beans>

2、创建UserService和Car两个类

/** * @author 作者 Your-Name: * @version 创建时间:2019年5月30日 上午9:42:34 * 类说明 */ 
package com.sumeng.web;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;/*** @author Administrator*@Component(value="car")   通用 其中car 想当于bean中的id*@Controller web层用*@Service service层用*@Scope 不写或者为 @Scope为单列模式 *@Scope("prototype") 为多列模式  prototype(多列)*/
@Component(value="car")
@Scope("prototype")
public class Car {@Value("宝马") 	//给carName属性注入值private String carName;/*** @Autowired 对象注入   ----实际开发常用 * @Autowired  	@Qualifier("user") 两个一起使用  也是对象注入  其中 user相当于bean中的id* @Resource(name="user")  jdk自带注解 和前两个同样的性质 * 生命周期* 		@PostConstruct 相当于  bean中的    init-method* 		@PreDestroy  相当于bean中的   destroy-method*/@Resource(name="user")private UserService userservice;public void getCar(){System.out.println("我是汽车"+this.carName);userservice.getsave();}@PostConstructpublic void getstart(){System.out.println("我被创建了-car!");}@PreDestroypublic void getdestroy(){System.out.println("我背销毁了-car!!");}public String getCarName() {return carName;}public void setCarName(String carName) {this.carName = carName;}@Overridepublic String toString() {return "Car [carName=" + carName + "]";}public UserService getUser() {return userservice;}public void setUser(UserService user) {this.userservice = user;}}
/** * @author 作者 Your-Name: * @version 创建时间:2019年5月30日 上午10:19:45 * 类说明 */ 
package com.sumeng.web;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;/*** @author Administrator**/
@Component(value="user") //相当于 bean 【id  class】
public class UserService {@PostConstruct		//相当于bean中的init-methodpublic void init(){System.out.println("user对象  创建之前执行的方法");}@PreDestroy			//箱单于bean中的destroy-methodpublic void destroy(){System.out.println("user对象 销毁后执行的方法");}public void getsave(){System.out.println("我是user");}}

3.创建测试类

/** * @author 作者 Your-Name: * @version 创建时间:2019年5月30日 上午9:44:57 * 类说明 */ 
package com.sumeng.action;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.sumeng.web.Car;
import com.sumeng.web.UserService;/*** @author Administrator**/
public class Test {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("config/Spring.xml");Car car = (Car)context.getBean("car");Car car2 = (Car)context.getBean("car");System.out.println(car == car2);car.getCar();}}

4、效果


http://chatgpt.dhexx.cn/article/04UbYaG5.shtml

相关文章

Spring @Order注解详解

注解Order的作用是定义Spring容器加载Bean的顺序。 源码 Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) Documented public interface Order {/*** The order value.* <p>Default is {link Ordered#LOWEST_PR…

Spring注解详解:@ComponentScan自动扫描组件使用

目录 无注解方式component-scan使用 注解方式ComponentScan使用 ComponentScan的扫描规则 无注解方式component-scan使用 之前&#xff0c;我们需要扫描工程下一些类上所标注的注解&#xff0c;这些常用注解有&#xff1a; Controller,Service,Component,Repository 通过在…

Spring注解详解

一、Spring注解驱动开发入门 spring在2.5版本引入了注解配置的支持&#xff0c;同时从Spring 3版本开始&#xff0c;Spring JavaConfig项目提供的许多特性成为核心Spring框架的一部分。因此&#xff0c;可以使用Java而不是XML文件来定义应用程序类外部的bean。在这里面官方文档…

Spring常用注解的详细介绍(包你学明白)

目录 1. 为什么要使用注解&#xff1f; 2. 什么是注解&#xff1f; 3. 在Spring中使用注解的前期准备 4. Component注解的详细介绍 5. Value注解的详解介绍 6. Autowired注解的详细介绍 7. Resource注解的详细介绍 8. 怎么选择基于xml还是基于注解的方式创建对象并赋值呢…

Spring中的注解详细介绍

注&#xff1a;标颜色的需要重点掌握 一、Spring原始注解&#xff1a; Spring原始注解主要代替<bean>标签的配置。 1. Component 说明&#xff1a;使用在类上用于实例化Bean 2. Repository 说明&#xff1a;使用在dao层类上用于实例化…

isnumeric_Python字符串isnumeric()

isnumeric Python String isnumeric() function returns True if all the characters in the string are numeric, otherwise False. If the string is empty, then this function returns False. 如果字符串中的所有字符均为数字&#xff0c;则Python String isnumeric&#x…

isdigit isdecimal isnumeric 区别

一、代码测试 num "1" #unicode num.isdigit() # True num.isdecimal() # True num.isnumeric() # Truenum "1" # 全角 num.isdigit() # True num.isdecimal() # True num.isnumeric() # Truenum b"1" # byte num.isdigit() # True n…

StringUtils.isNumeric使用

网上查"java 判断字符串为数字"阅资料&#xff0c;大部分资料都在讲字符串转为整数的情况&#xff0c;很少资料提及关于负数和小数的情况&#xff0c;最终决定采用StringUtils.isNumberic这个方法差别&#xff0c; 在测试导出时发现有报错&#xff0c;用debug模块一…

Java 字符串的数字校验:isNumeric,isNumericSpace和正则表达式,对比分析

导读 数字类型的判断是项目里常见的场景&#xff0c;相比一大串的非空&#xff0c;instanceof 以及大于小于0的判断&#xff0c;我更倾向于使用工具类 StringUtils 或者 正则表达式 来实现功能&#xff0c;追求代码的简洁和高效。 你可能需要的博客&#xff1a; 正则表达式预编…

StringUtils.isNumeric(str)

在项目中遇到一处bug&#xff0c;调试的结果竟然是StringUtils.isNumeric(String str) 在捣鬼&#xff08;采用的是org.apache.commons.lang.StringUtils&#xff09;&#xff0c;下面的代码是判断一个参数非空&#xff0c;且为整数&#xff1a; if(StringUtils.isNumeric(str)…

第六十七章 SQL函数 ISNUMERIC

文章目录 第六十七章 SQL函数 ISNUMERIC大纲参数描述示例 第六十七章 SQL函数 ISNUMERIC 测试有效数字的数值函数。 大纲 ISNUMERIC(check-expression)参数 check-expression - 要计算的表达式。 ISNUMERIC返回SMALLINT数据类型。 描述 ISNUMERIC计算check-expression并…

isnumeric( )函数用法

isnumeric( )还是一个很实用的函数&#xff0c;在算法题目里面应该会有比较大的作用。 检测字符串是否只由数字组成&#xff0c;如果字符串中只包括数字&#xff0c;就返回Ture&#xff0c;否则返回False。 华为的一道算法题&#xff1a; 读入一个字符串str&#xff0c;输出字…

MAE:视觉自监督2021(原理+代码)

文章目录 前言一、MAE原理遮住95%的像素后&#xff0c;仍能还原出物体的轮廓&#xff0c;效果如图&#xff1a; 二、MAE测试代码1.models_mae.py1.1 self.forward_encoder1.2 self.forward_decoder1.3 loss self.forward_loss(imgs, pred, mask) 2.run_one_image 三、MAE升级版…

​一文看尽MAE最新进展!恺明的MAE已经提出大半年,目前发展如何?

©PaperWeekly 原创 作者 | Jason研究方向 | 计算机视觉 写在前面 自去年 11 月份恺明大神提出 MAE 来&#xff0c;大家都被 MAE 简单的实现、极高的效率和惊艳的性能所吸引。近几个月&#xff0c;大家也纷纷 follow 恺明的工作&#xff0c;在 MAE 进行改进&#xff08;如…

一文解读Masked Autoencoder(MAE)

前言 论文链接&#xff1a;https://arxiv.org/pdf/2111.06377.pdf   跟李沐学AI&#xff1a;https://www.bilibili.com/video/BV1sq4y1q77t?spm_id_from333.999.0.0   如果说Vision Transformer是Transformer在CV领域的拓展&#xff0c;那么Masked Autoencoder就是BERT在C…

matlab mse mae,回归评价指标MSE、RMSE、MAE、R-Squared

前言 分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差。看公式 image.png 这里的y是测试集上的。 用 真实值-预测值 然后平方之后求和平均。 猛着看一下这个公式是不是觉…

何凯明最新一作MAE(mask掉图片的部分信息也能重建识别)

导读 凯明出品&#xff0c;必属精品。没有花里胡哨的修饰&#xff0c;MAE就是那么简单的强大&#xff0c;即结构简单但可扩展性能强大。MAE通过设计一个非对称的编码解码器&#xff0c;在预训练阶段&#xff0c;通过高比例的掩码原图&#xff0c;将可见部分输入到编码器中&…

李沐精读论文:MAE 《Masked Autoencoders Are Scalable Vision Learners》

论文&#xff1a;Masked Autoencoders Are Scalable Vision Learners 别再无聊地吹捧了&#xff0c;一起来动手实现 MAE(Masked Autoencoders Are Scalable Vision Learners) 玩玩吧&#xff01; - 知乎 参考博文&#xff1a;MAE 论文逐段精读【论文精读】 - 哔哩哔哩 神洛华…

从Transformer到ViT再到MAE

从Transformer到VIT再到MAE 引言Transfomer提出的背景模型架构具体细节Add&NormAttention&#xff1a;Multi-Head Attention自注意力机制&#xff08;self attention&#xff09;Positional Encoding ViT提出的背景&#xff1a;模型架构&#xff1a;具体细节&#xff1a;维…

MAE简记

MAE简记 文章目录 MAE简记Mask 方法EncoderDecoderTarget & LOSS Mask 方法 将图片分割成不重复的正方形patch&#xff0c;遮挡其中一部分patch(75%) Encoder 采用ViT&#xff0c;但是只对可见的没有被masked的patch使用 Decoder 以encoder的输出masked的patch作为输入…