小编Chr*_*ris的帖子

'src/main/java''约定的优点是什么?

我注意到很多项目都有以下结构:

  • 项目-A
    • 箱子
    • LIB
    • SRC
      • 主要
        • java的
          • RootLevelPackageClass.java

我目前使用以下约定(因为我的项目是100%java):

  • 项目-A
    • 箱子
    • LIB
    • SRC
      • RootLevelPackageClass.java

我目前没有使用Maven,但我想知道这是否是Maven约定或者是否还有其他原因.有人可以解释为什么第一个版本如此受欢迎,如果我应该采用这个新的约定?

克里斯

java coding-style conventions

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

如何使用HTML5/JavaScript检查连接类型(WiFi/LAN/WWAN)?

如果客户端通过WWAN(计量)连接或其他方式连接,我希望将特定网站定制为低带宽版本.

连接类型对于站点了解它是否应提供丰富的体验或带宽有效的体验非常重要.我的桌面在计量连接上运行,将来会有更多桌面通过计量蜂窝网络(包括Windows 8平板电脑)连接,高效的网络应用程序应该尊重用户可能不需要付费的高细节资产字节连接.

如何使用HTML5/JavaScript检查客户端是否通过WiFi/LAN/WWAN连接?

注意:我不希望明确检查浏览器标头(这对于可以通过多种方法连接到互联网的桌面浏览器来说并不是真正的解决方案).

javascript html5 wwan

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

如何使Spring接受流利(非虚空)的设置者?

我有一个API,我正在变成一个内部DSL.因此,我的PoJos中的大多数方法返回对此的引用,以便我可以声明性地将方法链接在一起(语法糖).

myComponent
    .setID("MyId")
    .setProperty("One")
    .setProperty2("Two")
    .setAssociation(anotherComponent)
    .execute();
Run Code Online (Sandbox Code Playgroud)

我的API不依赖于Spring,但我希望通过PoJo友好,零参数构造函数,getter和setter使其成为"Spring-Friendly".问题是,当我有一个非void返回类型时,Spring似乎没有检测到我的setter方法.

在将命令链接在一起时,返回类型非常方便,所以我不想破坏我的编程API,只是为了兼容Spring注入.

Spring中有一个设置允许我使用非void setter吗?

克里斯

java reflection spring fluent-interface introspection

14
推荐指数
3
解决办法
5720
查看次数

我的内部API类应该都在一个包中吗?

我正在努力打包API以供公众使用.因此,我试图限制只暴露于我希望公开和可支持的方法.当然,在这下面有许多有限的访问方法.

麻烦的是我有很多内部代码需要访问这些受限制的方法而不公开这些方法.这会产生两个问题:

  • 我不能创建接口来在类之间进行通信,因为这会使我的内部方法公开.
  • 除非我将大部分内部类放在同一个包中,否则我无法访问受保护的或默认的方法.

所以,我有大约70或80个内部类在干净隔离的包中但是具有过度宽松的访问修饰符.你会说单个包是两个邪恶中的较小者还是有更好的方法来掩盖我的内部方法,同时保持更细粒度的包?

我有兴趣在这里找到最好的做法.

我已经意识到了这一点

java api

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

OSGi从根本上与JSR-223脚本语言发现不兼容吗?

我最近编写了一个小的专业脚本语言,并使用Maven导出符合OSGi的捆绑包,该捆绑包还将服务描述符导出到" META-INF/services/javax.script.ScriptEngineFactory"服务注册表文件中.

问题是虽然OSGi导入和导出包很好,但服务注册表似乎与OSGi不兼容(因为OSGi将其捆绑包保留在通用类路径之外,并为模块使用单独的类加载器).

我的问题是,我认为OSGi与服务发现机制不兼容是正确的,如果没有,我可以添加到我的包元数据中,以便ScriptEngineManager.getEngineFactories()在OSGi环境中列出我的脚本引擎?

java osgi jsr223

9
推荐指数
2
解决办法
2499
查看次数

推荐用于Java实现的低内存hashmap

我目前正在研究编程相关的问题,我试图制作一个庞大的数据散列图.数据的关键是CharSequence的自定义低内存实现,它实现hashCode()和equals(...),值为是Integer对象.

这个散列表中可能有数百万个条目,我通过将Integer作为文件中的指针指向我希望散列的数据,从而大大减少了值的内存使用,但问题是密钥可能是几十个字节(平均25个字节)并且密钥需要在HashMap的默认实现中保存在内存中.

我需要一个内存开销较低的hashmap,它可以将密钥分页到磁盘,或者存储密钥的散列表示.如果密钥本身是哈希,那么我会担心哈希冲突.

理想情况下,我希望能够在每50MB堆空间中存储一百万个条目(密钥中的一个字节数组为25个字节,值部分中为Integer对象).

有没有人对低内存文件系统支持的地图有任何经验,这些地图经过优化可以减少密钥的占用空间?

谢谢,

克里斯

java collections performance hashtable hashmap

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

如何在单个for-eachin XSLT中选择多个节点

我正在尝试学习XSLT,但我最好通过示例.我想对模式转换执行一个简单的模式.如何仅在一次传递中执行此转换(我当前的解决方案使用两次传递并失去客户的原始订单)?

从:

<?xml version="1.0" encoding="UTF-8"?>
<sampleroot>

<badcustomer>
    <name>Donald</name>
    <address>Hong Kong</address>
    <age>72</age>
</badcustomer>

<goodcustomer>
    <name>Jim</name>
    <address>Wales</address>
    <age>22</age>
</goodcustomer>

<goodcustomer>
    <name>Albert</name>
    <address>France</address>
    <age>51</age>
</goodcustomer>

</sampleroot>
Run Code Online (Sandbox Code Playgroud)

至 :

<?xml version="1.0" encoding="UTF-8"?>
<records>

<record id="customer">
    <name>Donald</name>
    <address>Hong Kong</address>
    <age>72</age>
    <customertype>bad</customertype>
</record>

<record id="customer">
    <name>Jim</name>
    <address>Wales</address>
    <age>22</age>
    <customertype>good</customertype>
</record>

<record id="customer">
    <name>Albert</name>
    <address>France</address>
    <age>51</age>
    <customertype>good</customertype>
</record>

</records>
Run Code Online (Sandbox Code Playgroud)

我已经解决了这个方法(我失去了客户的顺序,我认为我必须多次解析文件:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/sampleroot">

    <records>

        <xsl:for-each select="goodcustomer">
            <record id="customer">
                <name><xsl:value-of select="name" /></name>
                <address><xsl:value-of select="address" /></address>
                <age><xsl:value-of select="age" /></age>
                <customertype>good</customertype> …
Run Code Online (Sandbox Code Playgroud)

xslt

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

JDBC/OSGi以及如何动态加载驱动程序而不明确说明bundle中的依赖项?

这是一个很大的问题.

我有一个结构良好但单片的代码库,它具有原始的模块化架构(所有模块实现接口但共享相同的类路径).我意识到这种方法的愚蠢以及当我在可能具有不同冲突版本的库的应用程序服务器上进行部署时它所代表的问题.

我现在依赖于大约30个罐子而且在中途将它们收起来.现在,我的一些模块很容易声明版本化的依赖关系,例如我的网络组件.它们静态引用JRE和其他BNDded库中的类,但我的JDBC相关组件通过Class.forName(...)实例化,并且可以使用任意数量的驱动程序之一.

我按服务区域将所有内容分解为OSGi包.

  • 我的核心类/接口.
  • 报告相关组件.
  • 数据库访问相关组件(通过JDBC).
  • 等等....

我希望我的代码能够在没有OSGi的情况下通过单个jar文件使用我的所有依赖项并且根本没有OSGi(通过JARJAR),也可以通过OSGi元数据和带有依赖性信息的粒度包进行模块化.

  • 如何配置我的包和我的代码,以便它可以动态利用类路径和/或OSGi容器环境中的任何驱动程序(Felix/Equinox/etc.)?

  • 是否有运行时方法来检测我是否在容器中兼容的OSGi容器中运行(Felix/Equinox/etc.)?

  • 如果我在OSGi容器中,是否需要使用不同的类加载机制?

  • 我是否需要将OSGi类导入到我的项目中,以便能够通过我的数据库模块加载at-bundle-time-unknown JDBC驱动程序?

  • 我还有第二种获取驱动程序的方法(通过JNDI,它只在app服务器上运行时才真正适用),我是否需要更改支持OSGi的应用服务器的JNDI访问代码?

java osgi modularity jdbc

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

如何在GWT中实现登录屏幕?

我正在为后端应用程序编写一个小型GWT前端,我想知道GWT应用程序的最佳安全模型?

我正在考虑实现一个RPC方法,该方法从客户端网页接收用户密码的MD5,然后将会话ID传回客户端页面(或失败代码).所有后续调用都只使用会话ID,服务器会跟踪会话ID的IP地址是否与创建会话ID的IP地址相同?

这是GWT应用程序(非ssl)身份验证的标准机制吗?

如果没有,有人可以建议替代解决方案?

谢谢,

java authentication gwt

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

如何在vanilla GWT中将窗口小部件置于屏幕中间?

我希望将一个小部件置于浏览器窗口的中间(水平和垂直).我不希望拉伸窗口小部件来填充根窗格,也不希望使用弹出窗口.

有没有一种简单的方法可以实现这一目标?

谢谢,

layout gwt widget

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