小编mib*_*tec的帖子

如何注入ApplicationContext本身

我想把自己注入ApplicationContext一个bean.

就像是

public void setApplicationContext(ApplicationContect context) {
  this.context = context;
}
Run Code Online (Sandbox Code Playgroud)

那可能在春天吗?

java spring applicationcontext

60
推荐指数
3
解决办法
8万
查看次数

在类路径中查找重复的类

我有一个使用Maven构建的Java应用程序,它有很多依赖项.在执行我的测试用例时,它们有时会很好地通过,有时它们会因为一些不兼容的类组合而失败.所以似乎在类路径中必须有两次随机获取的类.一个很好,另一个没有.

  • 如何找出哪些类/ jar在我的类路径中不兼容?
  • 使用Maven的正确方法是什么,不要陷入兼容性陷阱?

java maven

26
推荐指数
3
解决办法
2万
查看次数

如何使用Puppet在php.ini中设置config = value?

我在Puppet中做了我的第一步并遇到了问题.我已经在Linux服务器上安装了PHP,我想对php.ini文件稍作修改.我不想ini用存储库中的一个覆盖整个文件,只需更改/创建一个简单的配置值.

我想确保,属性upload_max_filesize中的属性php.ini值为10M.

我怎样才能做到这一点?

configuration ini puppet augeas

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

Java不确定吗?

我在Java中编写了一些捕食者 - 猎物模拟.即使规则非常复杂并且最终处于混乱系统中,所使用的技术也很简单:

  • 关于基本数据类型的算术和决策
  • 没有外部图书馆
  • 没有包括外部系统
  • 没有并发发生
  • 不使用当前时间或日期

所以我认为在用相同的参数初始化系统时它应该输出相同的结果,但它没有,我想知道为什么.

关于这一点的一些想法:我的应用程序使用Randoms,但是对于该测试,我使用给定值初始化它们,因此在我的理解中,它们应该为每次运行创建相同顺序的相同输出.

我正在迭代Sets,我知道Set没有定义迭代的顺序a .但我没有看到任何理由为什么以Set相同的顺序填充相同的值应该在几次运行中表现不同.可以?

我正在使用很多floats.1 + 1 = 1.9999999999725的数据类型总是让我怀疑,但即使他们的行为对我来说很奇怪,也应该总是一样奇怪.不是吗?

垃圾收集不是确定性的,但只要我不依赖于析构函数,我就应该是安全的.

如上所述,根据实际使用时间,没有并发性和数据类型.

我不能在一个简单的例子中重现这种行为.但是通过我的代码,我看不到任何可能无法预测的事情.那么我上面的任何假设都是错误的吗?我有什么想法可以错过吗?

这是验证我的假设的测试:

public static void main(String[] args) {
    Random r = new Random(1);
    Set<Float> s = new HashSet<Float>();
    for (int i = 0; i < 1000000; i++) {
        s.add(r.nextFloat());
    }

    float ret = 1;
    int cnt = 0;
    for (Float f : s) {
        float multiply = 0.3f;
        if (cnt++ % …
Run Code Online (Sandbox Code Playgroud)

java

12
推荐指数
2
解决办法
3199
查看次数

Spring MVC和自定义标签

我想在spring-mvc应用程序中的自定义taglibs中使用spring-beans.原因TagLib-Instances不是由spring实例化的,我不能使用dependnecy-injection.

我的下一个想法是通过拦截器将spring-context添加到请求中,并从tag-class中的请求中获取它.

有没有更好的方法在taglibs中使用spring?春天有什么东西可以随时使用吗?如果spring-mvc中还没有customtag-support,是否有办法用依赖项填充现有对象?

public class MyTag extends TagSupport {
  @Autowired 
  private MyObject object;

  public void setMyObject(MyObject myObject) {
    this.myObject = myObject;
  }

  public int doEndTag() {
    ApplicationContext context = request.getAttribute("context");
    context.populate(this);

    return object.doStuff();
  }
}
Run Code Online (Sandbox Code Playgroud)

java spring-mvc taglib

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

使用spring-mongodb清除mongodb

在我之前有很多人在stackoverflow上我想为我的mongodb应用程序做junit-tests.为此,我让一个实例运行,所以我的测试可以连接.但我想确保数据库在开始测试时处于空状态.

因为我正在使用spring-mongodb,spring-test和所有有趣的弹簧 - 我希望找到一个配置为我做这个,直到现在成功.

任何人都可以给我一个如何以干净的方式实现这一点的提示.我的想法是一个InitializingBean,它为我做了这个.但我对这个解决方案并不满意.有什么建议?

java spring mongodb

6
推荐指数
2
解决办法
6285
查看次数

使用Spring,Hibernate和Spring Transaction Support设置单元测试数据库

我想在单元测试中测试dao-layer与我的服务层的集成.所以我需要在我的数据库(hsql)中设置一些数据.对于这个设置,我需要在我的测试用例开始时自己的事务,以确保在启动我的测试用例之前我的所有设置都真正提交到数据库.

所以这就是我想要实现的目标:

// NotTranactional
public void doTest {
  // transaction begins
  setup database
  // commit transaction

  service.doStuff() // doStuff is annotated @Transactional(propagation=Propagation.REQUIRED)
}
Run Code Online (Sandbox Code Playgroud)

这是我的工作代码:

<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
    p:driverClassName="org.hsqldb.jdbcDriver"
    p:url="jdbc:hsqldb:mem:posmail" p:username="sa"
    p:password="" />

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>        
            <value>de.diandan.asynch.modell.receipt.Position</value>
            <value>de.diandan.asynch.modell.receipt.Receipt</value>
        </list>
    </property>    

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.connection.useUnicode">true</prop>
            <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
            <prop key="hibernate.connection.charSet">UTF-8</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
            <!-- Enable Hibernate's automatic session context management 
            <prop key="current_session_context_class">thread</prop> -->

            <!-- Disable the second-level cache  -->
            <prop key="cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> …
Run Code Online (Sandbox Code Playgroud)

java junit spring hibernate

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

如何使用Reflection获取方法的Generic Return类型

有没有办法获得泛型方法的返回类型 - 返回类型?

public interface MyGeneric<T> {
  T doSomething();
}

public interface MyElement extends MyGeneric<Element> {

}

public class Main {
  public static final void main(String[] args) {
    System.out.println(MyElement.class.getMethod("doSomething", new Class<?>[0]).magic()); // => Element
  }
}
Run Code Online (Sandbox Code Playgroud)

使用Method.getReturnType()我得到java.lang.Object没有.方法"魔法"是否存在?

java reflection

5
推荐指数
2
解决办法
1万
查看次数

Javascript承诺中的错误处理

我有一些Javascript代码执行一些异步的东西与一些同步后处理,然后再次异步的东西(XHR - >解析XHR - >新的XHR基于第一个).我没有完成错误处理:

/* API */
function getFile(name) {
    return $.ajax({
        url: name + ".json"
    }).then(function(data) {
        return data.id
    }, handleError)
}

function handleError(errorObj) {
    if (errorObj.status) {
        return errorObj.status
    } else {
        return errorObj
    }
}

function myApiCall() {
    return getFile(1)
        .then(getFile, handleError)
        .then(getFile, handleError)
        .then(getFile, handleError)
        .then(getFile, handleError);
}


/* caller */

function failFunction(status) {
    console.log("fail: ")
    console.log(status)
}

myApiCall().then(function(id) {
        console.log(id)
    }, failFunction)
Run Code Online (Sandbox Code Playgroud)

1.json 看起来像这样

{
    "id": "2"
}
Run Code Online (Sandbox Code Playgroud)

只是引用下一个文件,其他文件是等效的.

直到这里一切都很好(即使我不确定这是否是做错误处理的最佳方式).如果存在所有文件,则调用调用者的成功函数,否则调用错误函数.

但是当我的同步代码中出现一些错误时,everthing会中断

function getFile(name) { …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery promise

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

什么是RunUnitners的JUnit 5方式

在我们的环境中,我们使用JUnit 4 TestListener将测试结果报告给远程服务器.

什么是JUnit 5方式呢?

junit5

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

用maven构建完整的应用程序文件夹

大多数java独立应用程序在部署到生产环境后最终都会出现在这样的文件夹中.

myapp  
|->lib (here lay all dependencies)  
|->config (here lay all the config-files) 
|->myapp.bat  
|->myapp.sh  
Run Code Online (Sandbox Code Playgroud)

我想知道maven中是否有任何内容可以为我构建并将其放在tar.gz中.

Java:如何构建基于Maven的项目的独立发行版?别无选择.我不想让maven打开我需要的所有罐子.

java build maven

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

无法从tomcat中的自定义类加载器加载的类中获取注释

给定班级 org.popper.example.pages.Login

@Page(name="Login")
public interface Login {
}
Run Code Online (Sandbox Code Playgroud)

导出到c:\pos\example.jar以下servlet

public class PopperServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {
        URLClassLoader ucl = new URLClassLoader(new URL[] {new File("c:/pos/example.jar").toURI().toURL()});
        System.out.println(Arrays.asList(ucl.loadClass("org.popper.example.pages.Login").getAnnotations()));
    }

    public PopperServlet() throws MalformedURLException, ClassNotFoundException {
        URLClassLoader ucl = new URLClassLoader(new URL[] {new File("c:/pos/example.jar").toURI().toURL()});
        System.out.println(Arrays.asList(ucl.loadClass("org.popper.example.pages.Login").getAnnotations()));
   }
}
Run Code Online (Sandbox Code Playgroud)

以main身份运行代码可显示预期结果

[@org.popper.fw.annotations.Page(name=Login)]
Run Code Online (Sandbox Code Playgroud)

在Tomcat中将代码作为servlet运行无法找到注释

[]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么?

java tomcat annotations classloader

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

从浏览器使用Dropbox v2 API

我正在尝试通过webbrowser(FF 42.0,PhantomJS 1.9.8)和Dropbox v2 API将数据上传到Dropbox。我的功能看起来像这样

function(path, data, callback) {
        $.ajax({
            url: 'https://content.dropboxapi.com/2/files/upload',
            type: 'post',
            contentType: 'application/octet-stream',
            beforeSend: function(jqXHR) {
                jqXHR.setRequestHeader("Content-Type","application/octet-stream");
            },
            data: data,
            headers: {
                "Authorization": "Bearer " + token,
                "Dropbox-API-Arg": '{"path": "' + path + ',"mode": "add","autorename": true,"mute": false}',
                "Content-Type": "application/octet-stream"
            },
            success: function (data) {
                callback(data);
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

甚至我在所有可以想到的属性上都设置了Content-Type时application/octet-stream,出现以下错误

Error in call to API function "files/upload": Bad HTTP "Content-Type" header: "application/octet-stream
; charset=UTF-8".  Expecting one of "application/octet-stream", "text/plain; charset=dropbox-cors-hack"
Run Code Online (Sandbox Code Playgroud)

看一下Firebug中的请求,我发现Content-Type确实设置为application/octet-stream; charset=UTF-8。当尝试text/plain; charset=dropbox-cors-hack …

javascript dropbox-api

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