注意 : 自定义的Annotation中必须声明@Retention(RetentionPolicy.RUNTIME) . 不然不能获取 注解的值
1. 自定义Annotation
@Retention(RetentionPolicy.RUNTIME)
public @interface Hidden {
boolean value();
}
2. Bean对象
public class CompanyBean {
@Hidden(true)
@Header("公司ID")
private int companyId;
@Header("公司编码")
private String member;
@Header("公司名称")
private String companyName;
.....
3. 获取属性的值
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = null;
Field[] fields = CompanyBean.class.getDeclaredFields();
for(Field f : fields){
jsonObject = new JSONObject();
Class cls = f.getType();
Hidden hidden = f.getAnnotation(Hidden.class);
if(hidden != null){
boolean isHidden = hidden.value();
jsonObject.put("hidden", isHidden);
}
Header header = f.getAnnotation(Header.class);
System.out.println(header);
if(header != null) {
jsonObject.put("header", header.value());
}
jsonObject.put("name", f.getName());
if(!"String".equals(cls.getSimpleName())) jsonObject.put("type", cls.getSimpleName());
if("Date".equals(cls.getSimpleName())) {
jsonObject.put("type", "date");
jsonObject.put("dateFormat", "Y-m-d");
}
jsonArray.add(jsonObject);
}
System.out.println(jsonArray);
分享到:
相关推荐
- **Apache Commons BeanUtils**:提供了一套方便的工具方法,用于Bean的属性遍历和值设置,如`PropertyUtils.getPropertyDescriptors(Class<?> beanClass)`可获取Bean的属性描述符。 - **Spring Framework**:...
- **id属性**:是Bean在BeanFactory中的唯一标识符,用于通过BeanFactory获取Bean实例。例如,`<bean id="myBean" class="com.example.MyClass">`。 - **name属性**:类似于`id`属性,但可以定义多个别名。例如,`...
本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中的注解。在Spring 2.5版本之后,引入了基于注解的配置,这使得我们可以直接在类或方法上使用注解来声明...
在Bean中使用`@Value`注解可以直接获取这些属性值: ```java @RestController public class ValueController { @Value("${user.name}") private String name; @Value("${user.password}") private String ...
1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息
System.out.println("执行前处理,注解值:" + annotation.value()); } } } ``` 在这里,`@Before`注解定义了一个前置通知,`joinPoint`对象可以用来获取方法上的注解信息。 通过这种方式,我们可以在AOP中灵活...
7. 示例代码演示了如何使用@Component注解来定义一个Spring管理的Bean,并且在测试类中通过Spring的ApplicationContext来获取该Bean,验证其是否被正确注册。 8. JSR-250和JSR-330的注解虽然被Spring支持,但它们并...
获取Bean的方式与注解配置类似。例如: ```java @Configuration public class AppConfig { @Bean public MyBean myBean() { return new MyBean(); } } // 在其他类中获取Bean @Autowired private MyBean ...
Spring Boot允许我们将配置文件的属性值绑定到特定的Bean,通过`@ConfigurationProperties`注解实现: ```java @ConfigurationProperties(prefix = "app.config") public class AppConfig { private String ...
例如,`@Value("${property.name}")`可以获取配置文件中对应的属性值。 接下来,我们讨论一些使用注解时的注意事项: 1. 避免循环依赖:在设计bean时,要注意避免循环依赖,因为Spring默认的单例模式下,循环依赖...
在JAXB中,这些Bean类会被映射到XML元素和属性。 2. **XML Schema**: 定义了XML文档的结构和数据类型的规范。JAXB可以基于XML Schema自动生成Java Bean类,或者将Java Bean类转换为XML Schema。 3. **Marshalling*...
以下将详细介绍Spring在代码中获取bean的几种主要方法: 1. **`ApplicationContext` 接口** `ApplicationContext` 是Spring中最常用的接口之一,它提供了获取Bean的多种方法。例如,`getBean(String beanName)` ...
// 获取Bean列表 public <T> List<T> cursorToList(Cursor cursor, Class<T> clazz) { List<T> list = new ArrayList(); while (!cursor.isAfterLast()) { list.add(cursorToBean(cursor, clazz)); cursor....
javabean中有100个属性字段,想要在前端页面获取这100个字段和字段对应的中文名称,如用户名称(username),密码(password),可以动态的获取到中文名称和属性字段,并返回前端页面,本例只实现动态解析功能
EL是JavaServer Faces (JSF) 和其他Java技术中用于在视图层解析表达式并获取数据的工具,它允许在运行时评估Java表达式,例如获取Bean属性、方法调用等。在Spring AOP中,EL可以帮助我们访问被拦截方法的局部变量,...
要从一个非Spring管理的类中获取Bean,我们需要先创建或获取`ApplicationContext`实例。有多种方式可以做到这一点,例如: 1. 通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`加载XML...
在非Spring管理的类中,如果该类由Spring初始化,我们可以创建一个持有ApplicationContext的成员变量,并使用`@Autowired`注解进行注入,再通过ApplicationContext获取Bean: ```java @Autowired private ...
2. **注解驱动的Bean定义**:随着Spring的发展,更多地使用注解来进行Bean的定义和配置,如`@Component`、`@Service`、`@Repository`和`@Controller`等。这些注解表明类是一个Spring Bean,同时可以配合`@Autowired`...
这里,`dbUsername`会从属性文件中读取`db.username`的值,而`javaVersion`则会获取系统的Java版本号。 另外,`@Configuration`和`@Component`也是Spring注解配置中的重要部分。`@Configuration`注解标记的类表示一...
`@Value`注解允许直接在类中注入值,可以是从属性文件中读取的值,也可以是硬编码的字符串、数字或其他类型。 5. `@PostConstruct` 和 `@PreDestroy` 这两个注解标记了在bean初始化后和销毁前需要执行的方法。 6...