有沒有人有打印出bean屬性值的簡單方法?沒有通過獲取propertyDescriptors等複雜的內省構造。我正在談論測試和檢查,在開發過程中所有屬性都有正確的值。java/spring打印出bean屬性值
4
A
回答
6
的PropertyDescriptor是要走的路,但春季使得使用起來方便很多,如果你使用BeanWrapper接口。
這是一個愚蠢的測試類:
public class Thingy{
private final String foo = "hey";
private final int bar = 123;
private final List<String> grr = Arrays.asList("1", "2", "3");
public String getFoo(){
return this.foo;
}
public int getBar(){
return this.bar;
}
public List<String> getGrr(){
return this.grr;
}
}
下面是檢查它的一個實例的主要方法:
public static void main(final String[] args) throws Exception{
final Thingy thingy = new Thingy();
final BeanWrapper wrapper = new BeanWrapperImpl(thingy);
for(final PropertyDescriptor descriptor : wrapper.getPropertyDescriptors()){
System.out.println(descriptor.getName() + ":"
+ descriptor.getReadMethod().invoke(thingy));
}
}
輸出:
bar:123
class:class com.mypackage.Thingy
foo:hey
grr:[1, 2, 3]
閱讀本以供參考:
0
0
BeanPostProcessor也許能夠幫助你。每個bean初始化都會調用postProcessBeforeInitialization()方法,您可以在其中打印屬性值。
後處理器類:
public class ExampleBeanPostProcessor implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
if (bean instanceof YourBean)
System.out.println((YourBean) bean).getSomeProp());
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
return bean;
}
}
申報豆在Bean文件:
<bean class="ExampleBeanPostProcessor " />
+0
你可能沒看過我的問題的最後一句話。 – lisak 2010-09-23 12:00:27
0
對於一個襯墊可以使用gson庫。
new Gson().toJson(myObject)
對Maven:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
<scope>test</scope> <!-- remove you use gson in production -->
</dependency>
0
添加自定義<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
其中
@Override
protected String resolvePlaceholder(String placeholder, Properties props)
@Override
protected String resolvePlaceholder(String placeholder, Properties props, int systemPropertiesMode)
@Override
protected String resolveSystemProperty(String key)
相關問題
- 1. 用jquery打印出數據屬性值
- 2. 打印屬性的值
- 3. 打印屬性
- 4. 如何設置其他bean的屬性值bean屬性值
- 5. Java Servlet JSP不打印出屬性
- 6. Spring MVC模型屬性值不打印
- 7. XML :: Parser打印單個屬性值
- 8. 如何打印json對象屬性值?
- 9. JQ:打印鍵和屬性值
- 10. 在python-amara中打印屬性值
- 11. 打印出不具有相同值的屬性
- 12. 如何打印出屬性值而不是元素內容?
- 13. 使用Object.keys打印屬性()
- 14. 打印屬性在Angular2
- 15. 不能打印屬性 - Mongoose
- 16. 擴展打印機屬性
- 17. 從屬性內打印
- 18. 使用.toLowerCase打印屬性
- 19. Spring - 用新的屬性文件值替換bean屬性值
- 20. 打印JAXB生成的bean
- 21. Magento屬性下拉值(是/否)打印(數值)
- 22. XUL:從SQL查詢中打印值,但不使用值屬性
- 23. 如何列出bean的屬性
- 24. getter訪問bean屬性給出錯誤
- 25. JSF自動爲bean屬性賦值
- 26. 值不會更新bean屬性
- 27. 如何引用bean屬性值?
- 28. 打印出值列表
- 29. 打印出從find_element_by_xpath值
- 30. 打印出浮點值
謝謝seanizer,那就是我一直在尋找的東西。 – lisak 2010-09-22 12:08:13
我完全按照你所說的去做了。這是豆http://pastebin.com/242qAqHD。只有「progress」屬性沒有設置,否則其餘的bean屬性已經完全用數據初始化。結果是「progress:」,「movement:null」,「startingPos:null」....因此,爲了移動和啓動Pos出了問題... – lisak 2010-09-22 14:11:55
@lisak這很奇怪。檢查了這一點:http://pastebin.com/Y7NmRdNi當我執行這個,屬性是 – 2010-09-22 14:23:16