这段时间用了一下spring 2.5的@Autowired注释来做依赖注入,感觉真的不错,省掉了get、set的方法,整个类也看起来更加舒服了。
在这期间对于@Autowired注释访问private的变量一直感到很好奇,查了一下相关资料,写了一个小例子。不过没看过@Autowired的源码,不确定是不是这样做的,应该差不多吧。
代码如下:
1.声明了一个注释
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnno {
}
2.声明了一个含有private变量a的类
public class TestAnnotation {
@TestAnno
private String a;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
3.通过反射为a赋值
public class MainTest {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
TestAnnotation ta=new TestAnnotation();
Field[] fs=TestAnnotation.class.getDeclaredFields();
for(int i=0;i<fs.length;i++){
if(fs[i].isAnnotationPresent(TestAnno.class)){
fs[i].setAccessible(true);
fs[i].set(ta, "你好");
}
}
System.out.println(ta.getA());
}
}
关键是
fs[i].setAccessible(true);这个方法,如果不设置这个方法则会抛出java.lang.IllegalAccessException的异常。网上也有人说setAccessible有安全性限制不要随便乱用。不过至少可以做到
分享到:
相关推荐
Spring Annotation 注解 Spring 框架中的注解是用于在 Java 类中添加元数据的,通过这些元数据,Spring 框架可以在运行时提供更多的功能。 Spring 框架提供了多种类型的注解,例如 @Autowired、@Resource、@...
在Spring 2.5中引入了@Autowired注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。使用@Autowired可以消除set、get方法,从而简化程序的开发。 在使用@Autowired时,需要在...
在Spring框架中,`@Autowired`和`@Qualifier`注解是两个非常重要的依赖注入...通过阅读和分析`spring_0900_IOC_Annotation_Autowired_Qulifier`中的源码和示例,可以更深入地理解它们的实现细节和使用技巧。
Java Spring注解入门 Java Spring框架中,注解是一种非常重要的概念,它可以帮助我们简化配置文件的编写,并提高代码的可读性和维护性。在本节中,我们将学习如何使用Spring注解来实现属性的自动装配。 1. 使用...
Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 @Autowired 按照类型来装配 改变如下: package com.baobaotao; import org.springframework.beans....
在类的成员变量上使用`@Autowired`,Spring容器会在运行时自动找到合适的依赖并注入。例如,在`UserManagerImpl`类中,我们可以通过如下方式声明`UserDao`的依赖: ```java public class UserManagerImpl ...
### Spring基于注释(Annotation)的配置 #### 一、`@Autowired` 注释 `@Autowired` 是Spring框架提供的一种自动装配机制,用于简化Bean的依赖注入过程。该注解可以应用于类成员变量、方法及构造函数,帮助实现按...
在Spring框架中,注入Date类型的变量是一个常见的需求,特别是在处理日期和时间相关的业务逻辑时。这篇博客将探讨如何在Spring中有效地注入Date对象到bean的属性中。首先,我们需要了解Spring依赖注入的基本概念,它...
### Spring注解使用详解 #### 一、Spring 注解概述 Spring 框架通过引入注解极大地简化了 Java 应用程序的开发过程。在 Spring 中,使用注解可以替代传统的 XML 配置文件来定义 Bean 和管理依赖关系。这不仅减少了...
在Spring框架中,注解(Annotation)是一种元数据,它提供了简化配置、增强代码可读性和减少XML配置文件的方法。本示例将深入探讨如何在Java Maven项目中使用Spring注解进行开发。 首先,让我们了解Spring的核心...
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; @ContextConfiguration(locations = {"classpath:spring-context.xml"}) public...
自从Spring 2.5版本引入了基于注解的配置选项后,开发人员不再受限于XML配置文件的繁琐,而是能够更加直观、简洁地定义和管理应用程序中的bean。 - **@Autowired**:用于自动装配bean,可以作用于字段、构造器或...
【Java Spring注解详解】 在Java的Spring框架中,注解的使用极大地简化了配置,提高了开发效率。本文将深入探讨Spring注解的用法,特别是如何利用注解来注入属性。 1. **使用Spring注解注入属性** 在Spring框架...
示例代码:@Componentpublic class UserService { @Autowired private UserRepository userRepository;}@PathVariable:用于从请求的 URI 中获取参数,这些参数在 URI 中用大括号 {} 包裹。例如:/api/users/{id},...
- `@Resource` 并非 Spring 的注解,而是来自 Java 的标准库 javax.annotation.Resource,但 Spring 支持它的使用。它既可以按名称(byName)也可以按类型(byType)注入。 - `@Autowired` 是 Spring 提供的注解...
然而,随着注解(Annotation)技术的发展,Spring框架引入了基于注解的配置,使得代码更加简洁、直观。本示例将详细介绍如何使用注解配置实现Spring框架的注入。 首先,我们需要了解几个关键的注解: 1. `@...
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.spring...
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation....
Spring MVC作为Spring框架的重要组成部分之一,在Spring 2.5版本中引入了基于注解的配置方式,这使得开发者能够更便捷地构建Web应用程序。相比于传统的基于XML的配置方式,基于注解的配置更加简洁、直观,同时也提高...