小编app*_*ppu的帖子

用于java构建器模式对象的spring bean创建

我在我的Web应用程序端使用Google Gson(gson)库形式读/写json文件和spring mvc 3.

所以在控制器中,我想用漂亮的打印创建一个Gson的单例实例.在java中代码是,

Gson gson = new GsonBuilder().setPrettyPrinting().create();
Run Code Online (Sandbox Code Playgroud)

在Controller中,我创建了一个自动连接的条目,如下所示,

@Autowired
private Gson gson;
Run Code Online (Sandbox Code Playgroud)

和xml bean配置如下,

<bean id="gsonBuilder" class="com.google.gson.GsonBuilder">
         <property name="prettyPrinting" value="true"/>
 </bean>  
 <bean id="gson" factory-bean="gsonBuilder" factory-method="create"/>
Run Code Online (Sandbox Code Playgroud)

它会在catalina日志中抛出以下异常,

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'prettyPrinting' of bean class [com.google.gson.GsonBuilder]: Bean property 'prettyPrinting' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1024)
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:900)
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358)
Run Code Online (Sandbox Code Playgroud)

我知道setPrettyPrinting()的setter签名与spring期望的不同,这就是spring抛出异常的原因.

  public GsonBuilder setPrettyPrinting() { …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc gson

3
推荐指数
1
解决办法
4565
查看次数

Pybuilder - 非python文件未打包

我目前的项目是在 python 中。对于构建包生成 + 单元测试运行,我正在使用Pybuilder实用程序,它非常酷。我使用了车轮分布在其他系统中安装模块。

存在一个配置文件,应用程序从中读取某些设置。settings.ini 文件在以下路径中,

PROJECT-ROOT
     |---- src
            |-main
                |-python
                     |- foo
                         |- conf
                         |   |- settings.ini
                         |
                         |-test.py
                         |-access.py
Run Code Online (Sandbox Code Playgroud)

pybuilder 自动从 build.py 脚本创建 setup.py。问题是二进制轮分发没有打包非 python 文件(*.ini 文件)。在搜索 SO 帖子时,获得诸如在 MANIFEST.mf 中添加之类的信息将解决此问题。但是在添加的同时

 project._manifest_include_directory('foo/conf', ('*.ini',))
Run Code Online (Sandbox Code Playgroud)

它只foo/conf/settings.ini在 sdist 中更新,而不是在 bdist(wheel) 上更新。我希望轮文件在 conf/ 目录中包含 settings.ini。在谷歌上搜索,得到了添加的信息 package_data在 setup.py字段将解决此问题的信息。但是使用 Pybuilder 的 build.py,我无法成功执行此操作。

任何人都可以帮我解决这个问题吗?

distutils python-3.x pybuilder

1
推荐指数
1
解决办法
797
查看次数

java.util.Date.getTime() 的问题

我对 javaDateSimpleDateFormat.

我有一个应用程序,它以GMT格式维护其文件创建时间yearMonthDayHourMinute。目前我在不同的时区(比如IST)。所以我想以GMT格式进行所有处理。

以下片段显示了我如何检索将存储在我的对象中的日期转换为 TimeInMillis。

>        1. SimpleDateFormat valueSDF = new SimpleDateFormat("yyyyMMddHHmm");
>        2. valueSDF.setTimeZone(TimeZone.getTimeZone("GMT"));
>        3. Date date = valueSDF.parse("201212060915");
>        4. System.out.println("date.getTime():  "+ date.getTime());   // returns 1354785300000
>        5. String fileCreationTime= Long.toString((date.getTime()/1000));
>        6. System.out.println("time :: "+ fileCreationTime);   // returns 1354785300
Run Code Online (Sandbox Code Playgroud)

以毫秒为单位的时间检索值(第 4 步)具有额外的三个尾随零。我的应用程序需要的是除以 1000 的结果。(第 5 步)

我很想知道,为什么 date.getTime() 会在结果中附加更多的零。堆栈专家,请分享您的建议!

date simpledateformat

0
推荐指数
1
解决办法
2440
查看次数