要使用注解来注入属性,首先就要定义一个注解,注解的定义如下:

package everyworkdayprogramming._2015_1_23;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/*四个元注解,他们的意思 (个人记忆)依次是 生成文档 可以被子类使用 在运行时可以使用 注解的目标是FIELD*/
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnotion {//有一个名为VALUE的值,默认为123String value() default "123";
}
package everyworkdayprogramming._2015_1_23;import java.lang.reflect.Field;public class SuperClass {// 在我们的父类的默认构造方法中来进行属性注入的操作,这里利用了子类会默认调用父类的无参构造方法的特性public SuperClass() {//获得类中的所有的属性Field[] fields = this.getClass().getDeclaredFields();//遍历fieldsfor (Field field : fields) {//如果这个field有注解MyAnnotionif (field.isAnnotationPresent(MyAnnotion.class)) {//获得field对应的MyAnnotion实例MyAnnotion myAnnotion = field.getAnnotation(MyAnnotion.class);try {//因为field是私有属性,所以要设置这里field.setAccessible(true);//修改field的值为annotion中注入的值field.set(this, myAnnotion.value());} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}}}
}
package everyworkdayprogramming._2015_1_23;/*子类直接继承我们的父类*/
public class SubClass extends SuperClass {// 调用注解注入属性,默认值是123,这里设置为test@MyAnnotion(value = "test")private String num;public String getNum() {return num;}public void setNum(String num) {this.num = num;}public static void main(String[] args) {// 输出一下我们的属性值System.out.println(new SubClass().getNum());}
}

通过继承来实现注解方式的属性注入相关推荐

  1. Spring——Bean管理-xml方式进行属性注入

    目录 一.xml方式创建对象 二.xml方式注入属性 第①种方式注入:set方法注入 第②种方式注入:有参构造函数注入 constructor-arg:通过构造函数注入 用name标签属性: 不按照顺 ...

  2. Spring~用注解读取bean(属性注入、构造方法注入、set注入)

    文章目录 注解@Autowired. 属性注入 Setter注入 构造方法注入 三种注入的优缺点 注解@Resource. 1.属性注入 2.构造方法注入 @Resource与@Autowired区别 ...

  3. Spring(三)——HelloSpring、IOC创建对象的方式、属性注入、自动装配、使用注解开发

    文章目录 1. 简介 2. IOC理论推导 3. HelloSpring 4. IOC创建对象的方式 4.1 使用无参构造创建对象(默认) 4.2 使用有参构造创建对象 5. Spring配置 5.1 ...

  4. 用@resource注解方式完成属性装配

    注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果. 1 需要修改xml文件的以下信息.    加入下列红色部分的4行 & ...

  5. [Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value

    基于注解方式实现属性注入 (1)@AutoWired:根据属性类型进行自动装配 第一步 把service和dao对象创建,在service和dao类添加创建对象注解 第二步 在service注入dao ...

  6. IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)

    目录 IOC操作Bean管理注解方式(注入属性@Autowired.@Qualifier和@Resource) 1.基于注解方式实现 属性注入 (1)@Autowired:根据属性类型进行自动装配 第 ...

  7. (转)Spring的bean管理(注解方式)

    http://blog.csdn.net/yerenyuan_pku/article/details/69663779 Spring的bean管理(注解方式) 注解:代码中的特殊标记,注解可以使用在类 ...

  8. spring IOC容器 Bean 管理——基于注解方式

    IOC 操作 Bean 管理(基于注解方式) 1.什么是注解 ​ (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值-) ​ (2)使用注解,注解作用在类上面,方法上面, ...

  9. spring项目属性注入和bean管理xml 注入一般属性和集合属性

    IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...

最新文章

  1. java程序初始化顺序
  2. 类的属性、类的方法、类的内置方法
  3. 卷积核里面的参数怎么来的_FSNet:利用卷积核概要进行深度卷积神经网络的压缩...
  4. docker环境下的测试
  5. 序列的卷积运算与相关运算——MATLAB
  6. J2EE开发工作中遇到的异常问题及解决方法总结
  7. 牛客练习赛 栈和排序
  8. opendds协议服务器,OpenDDS 开发手册
  9. python 大智慧 dll 交易_大智慧自动交易DLL文件
  10. su室外渲染参数设置_vray for sketchup渲染材质参数设置教程
  11. 【VBA】excel客户数据打印录入控件
  12. 微盟致远OA聚水潭YonSuite系统对接集成整体解决方案
  13. Linux操作系统基本概述
  14. SpringCloud实战微服务之——Ribbon详解
  15. xpath用于HTML文档通过元素,理解HTML和XPath
  16. 宽带拨号常见错误代码解析及故障排查
  17. 10个顶级商业思维:如何升级思维模式突破认知,让自己快速成长
  18. elasticsearch的master选举
  19. Python —— 列表的while循环遍历 、for循环遍历
  20. Zephyr pinctrl

热门文章

  1. android 视频录制和上传,关于android实时视频录制与上传 .
  2. 服务器闰秒 linux,闰秒导致部分 Linux 服务器高 CPU 使用率
  3. 基础练习 Sine之舞 (递推)
  4. HTML+CSS+JS实现燃烧的火焰火花动画特效
  5. HTML+CSS+JS实现 ❤️动态散花背景❤️
  6. java在线查看pdf文件,java 实现所有文件的在线查看(其他类型转pdf后用pdf.js显示)...
  7. mysql过滤效率和java过滤效率_如何合理选择初中高效过滤器的效率?
  8. mysql 解压缩安装_[mysql] MySQL解压缩安装步骤
  9. linux vps 运行exe文件夹,linux 64位下安装wine1.6 Windows模拟器(用来运行.exe文件) 编译安装32位wine...
  10. excel文件存入mysql_解析excel文件并将数据导入到数据库中