小编jav*_*fan的帖子

PHP的项目结构

我是PHP新手,想知道php项目的目录结构.我有Java和java的经验,我们有src包含java源文件,WEB-INF包含lib和jsp页面.我们在PHP中有任何类似的标准目录结构吗?我们也在php中进行分层,就像我们在java中有层(例如Web,Service,DAO层)

我浏览了几个链接.但每个人给出不同的答案.

不确定我们是否可以比较这两种语言.我只想坚持一些标准.

提前致谢.

php directory structure

22
推荐指数
3
解决办法
4万
查看次数

为什么iterator.remove不会抛出ConcurrentModificationException

iterator.remove()list.remove()迭代器不同的是什么不会抛出异常而list.remove()抛出异常?最后两者都在修改集合大小.

请忽略多线程.我只是谈论for-each循环和迭代器循环.据我所知 - 每个循环仅在内部创建迭代器.

我很迷惑.

java collections foreach iterator

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

工厂模式动态创建例外

我创建了Exception xml并动态创建并抛出异常.

<exception-mappings>
<exception-mapping key="exceptionkey1">
    <class-name>com.package.CheckedException</class-name>
    <message>Checked Exception Message</message>
</exception-mapping>
<exception-mapping key="exceptionkey2">
    <class-name>com.package.UnCheckedException</class-name>
    <message>UnChecked Exception Message</message>
</exception-mapping>
Run Code Online (Sandbox Code Playgroud)

我根据异常键使用反射动态创建异常对象.

public static void throwException(final String key) throws CheckedException, UncheckedException {
    ExceptionMapping exceptionMapping = exceptionMappings.getExceptionMappings().get(key);
    if (exceptionMapping != null) {
        try {
            Class exceptionClass = Class.forName(exceptionMapping.getClassName());
            try {
                throw ()exceptionClass.newInstance(); // line X
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道哪一个类在X行进行类型转换,这样我就不需要使用If/else了.原因我不想使用if else,有可能在将来可能会添加新类,并且我不希望每次添加新异常时都更改此代码.

我的基本逻辑是我的服务层将抛出CheckedException或UncheckedException.如果抛出CheckedException,它将由我的Web层处理.此外,我不能抛出超级父类Exception或Throwable,因为我的web层只捕获CheckedException.如果抛出UncheckedException,它将显示异常页面.

请帮助我,因为我无法继续前进.

编辑:任何其他解决方案也被接受.

java exception-handling factory-pattern

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

服务和DAO层的JUNIT测试

我在项目中有分层的架构,例如Controller-> Service-> DAO。我想为服务层编写JUnit测试用例。现在,由于服务层将在内部调用DAO方法,所以为什么要在内部测试DAO层时编写不同的测试用例。

有人说,我需要使用Mockito模拟DAO方法。真的需要吗?不能在测试服务层方法时直接使用原始代码吗?

junit unit-testing junit4

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

库存控制的并发控制

有很多与我的问题相关的类似问题。但我没有找到任何令人满意的答案来回答我的问题。所以我把这个问题放到这个论坛上。

我对库存管理系统中的并发控制有疑问。假设我有产品 A、B、C,数量为 2、3、4。我的应用程序是多用户的。

我有产品页面,用户可以在其中查看产品列表和可用数量。我有结账和付款页面,可能需要一些时间才能到达产品页面。

现在,如果它是多用户 Web 应用程序,并且假设用户 1 订购了 2 数量的产品 A 但尚未下订单,则用户 2 仍然可以看到具有 2 数量的 A。

我是否应该暂时(可配置时间)锁定产品 A 的 2 个数量,直到下订单为止?是不是一个好的设计。如果是的话,我应该锁定在java中还是数据库中?

java concurrency inventory

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

在JPA中将分离的实体合并到实体管理器的最佳方法是什么

我正在使用JPA + spring开发Web应用程序。我的项目层结构是Web->服务-> DAO-> GenericDAO。所有类均以单例spring bean实例化。GenericDAO正在使用@PersistenceContext注入entityManager的实例。

我的应用程序获取http会话中存储的域实体。在对那些实体执行任何数据库操作之前,需要使用合并将其重新连接到实体管理器。我想知道将实体合并到实体管理器的最佳方法。当前,每次调用事务方法时,我都会调用genericDAO.merge(object)。例如

@Transactional
public void addProducts() {
   Order order = getOrderFromHttpSession();
   genericDAO.merge(order);
   // delete existing products
   // add new products
   // other db operations.
}
Run Code Online (Sandbox Code Playgroud)

还有其他更好的方法可以做到这一点。有任何设计模式可用于此吗?

merge spring jpa entitymanager

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

检索存储在数据库中的日期时区

我的J2EE应用程序部署在集群中,服务器可以位于多个时区.例如,一台服务器在EST中,另一台服务器在CST中.

考虑一种情况,其中请求到达EST中的服务器并将日期和时间存储在数据库中(没有时区).还有另一个请求来检索相同的日期.但该请求可能会转到CST中的另一台服务器.

有没有办法确定哪个时区日期存储在数据库中?

PS:我正在使用Oracle/Java/Hibernate.

java oracle timezone hibernate date

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