小编Lui*_*ano的帖子

将工件提交到maven中央存储库的过程是什么以及有哪些要求?

我想,需要一些传递来向Maven Central存储库提交工件.

我想详细了解哪些要求,要遵循的程序,以及是否有帮助这一过程的教程或指南.

我听说你还需要对这些文物进行数字签名(gpg),有关这方面的一些细节也会受到欢迎.

open-source artifacts repository maven maven-central

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

为什么在ReentrantReadAndWriteLock中,readLock()应该在writeLock.lock()之前解锁?

ReentrantReadAndWriteLock类javadoc:

void processCachedData() {
  rwl.readLock().lock();
  if (!cacheValid) {
     // Must release read lock before acquiring write lock
5:   rwl.readLock().unlock();
6:   rwl.writeLock().lock();
     // Recheck state because another thread might have acquired
     //   write lock and changed state before we did.
     if (!cacheValid) {
       data = ...
       cacheValid = true;
     }
     // Downgrade by acquiring read lock before releasing write lock
14:  rwl.readLock().lock();
15:  rwl.writeLock().unlock(); // Unlock write, still hold read
  }

  use(data);
  rwl.readLock().unlock();
}
Run Code Online (Sandbox Code Playgroud)

为什么我们必须在获取注释中写入的写锁之前释放读锁?如果当前线程持有读锁定,那么当其他线程不再读取时,应该允许它获取写锁定,无论当前线程是否还保持读锁定.这是我期望的行为.最终在第4行和第5行锁定升级并在第14行和第15行锁定降级我希望在ReentrantReadAndWriteLock类内部完成.为什么那是不可能的?

换句话说,我希望代码能够正常工作:

void processCachedData() { …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading locking java.util.concurrent

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

如何防止从其他网站调用我的servlet

好的,所以我有一个像这样的简单servlet.

public class SimpleServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    resp.setContentType("text/plain");
    resp.getWriter().println(req.getParameter("name"));

    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说当我使用这个URL /simple_servlet.do时会触发它

如何确保此servlet仅在从我的网站而不是从其他网站调用时才能正常工作.换句话说,有一些请求参数(不能被欺骗)让我知道.

java security authentication servlets java-ee

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

如何从twitter获取关注建议?

Twitter 上有一个页面列出了一些建议的用户,“根据您关注的人等为您推荐 Twitter 帐户”。通过此链接: https: //twitter.com/i/#!/who_to_follow/suggestions

我没有找到 API 来检索相同的列表(也许我错过了它?)。

有谁知道如何访问该列表?(除了解析html)

该列表的好处是它没有分类,并且确实包含普通人(即不是体育/电影超级巨星等)

twitter

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

Java属性文件绑定到Java接口

使用GWT你有这样的东西:

public interface LoginConstants extends Constants {
   @DefaultStringValue("Wellcome to my super app")
   @Key("appDescription")
   String appDescription();

   @DefaultStringValue("Ok")
   @Key("okButtonLabel")
   String okButtonLabel();
}
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的类中使用GWT.create(LoginConstant.class),这样接口就会被动态实现支持,当我调用loginConstants.appDescription()时,使用@Key注释返回属性文件中包含的值引用属性文件中的键.如果属性文件遗漏了该属性,则返回de @DefaultStringValue.这用于国际化,但也可能用于配置.但是对于GWT,这意味着要在客户端使用(即转换为JavaScript),对于i18n,而不是用于配置.

但是,我发现这个想法对于配置处理也非常方便.

我想知道是否有人知道在服务器端执行类似操作的框架,而不必将代码绑定到GWT.即.如果有任何库实现这种专门为配置处理而设计的逻辑.我不知道这样的事情.

参考GWT中的功能:https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nConstants

java api configuration properties

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

Spring xml ioc对Java实例化有什么好处?

好的,这个问题会得到很多挫折......

我刚刚看到这个问题,一个人面临一些问题与spring xml beanfactory的事情.

我想明白为什么这个:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="namingStrategy">
        <ref bean="namingStrategy"/>
    </property>
    <property name="mappingResources">
        <list>
            <!--<value>genericdaotest/domain/Person.hbm.xml</value>-->
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">create</prop>
        </props>
    </property>
    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

无论如何应该比这更好:

public class BeanFactory {
    public LocalSessionFactoryBean getSessionFactory() {
        LocalSessionFactoryBean bean = new LocalSessionFactoryBean();
        bean.setNamingStrategy(getNamingStrategy());
        bean.setMappingResources(Arrays.asList(getPerson());
        bean.setHibernateProperties(new Properties() {{ 
           setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
           setProperty("hibernate.show_sql", "true")
           setProperty("hibernate.hbm2ddl.auto", "create");
        }});
        bean.setDataSource(getDataSource());
        return bean;
    }
}
Run Code Online (Sandbox Code Playgroud)

它更短,更容易理解,它没有Spring怪癖,它不需要运行外部库(可能与其他人发生冲突),它是逐步调试的,它是'单元可测试的,它没有'需要反射,它可能有利于OOP,它更容易从IDE重构,它在编译时检查类型,它是Java-not xml-并且不需要在运行时解析,当它编译时你已经知道它已经在形式上是正确的(并且不会在运行时发现异常),如果需要外化某些配置参数,则使用属性文件(将包含实际配置).

而且不仅仅是一切:我不需要在我的代码中使用一个名为"BeanFactory"的庞大单例类,它负责实例化各种对象(比如与IoC原理无关的庞大而丑陋的服务定位器).

所以,问题是:

为什么我更喜欢创建一个巨大的XML而不是创建我的对象在Java中组合和聚合它们?

java xml spring inversion-of-control

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

不安全的操作,未经检查的转换

当我编译下面的类(这里可用,添加main方法以在单个类中重现问题)时,我在IntelliJ或maven命令行中收到以下编译器警告:

java: /Users/luigi/var/src/owner/src/test/java/org/aeonbits/owner/multithread/ThreadBase.java uses unchecked or unsafe operations.
java: Recompile with -Xlint:unchecked for details.
Run Code Online (Sandbox Code Playgroud)

然后我添加了-Xlint:unchecked to maven以查看详细信息,我得到了:

[WARNING] /Users/luigi/var/src/owner/src/test/java/org/aeonbits/owner/multithread/ThreadBase.java:[74,45] unchecked conversion
  required: java.util.List<java.lang.Throwable>
  found:    java.util.List
Run Code Online (Sandbox Code Playgroud)

类源代码如下(已添加main以在单个类中重现问题):

package org.aeonbits.owner.multithread;

import org.aeonbits.owner.Config;
import org.aeonbits.owner.UtilTest.MyCloneable;

import java.util.ArrayList;
import java.util.List;

import static org.aeonbits.owner.UtilTest.debug;

abstract class ThreadBase<T extends Config> extends Thread implements MyCloneable {
    private static long counter = 0;
    final long uniqueThreadId = ++counter;
    final T cfg;
    final Object lock;
    final int loops;
    final List<Throwable> errors = new ArrayList<Throwable>();

    ThreadBase(T cfg, Object …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction generics compiler-warnings

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