小编jer*_*erg的帖子

为什么我们不应该制作一个Spring MVC控制器@Transactional?

关于这个主题已经有一些问题,但是没有任何响应可以提供参数来解释为什么我们不应该创建一个Spring MVC控制器Transactional.看到:

所以为什么?

  • 不可逾越的技术问题吗?
  • 有架构问题吗?
  • 是否存在性能/死锁/并发问题?
  • 有时需要多个单独的交易吗?如果是,有什么用例?(我喜欢简化设计,调用服务器要么完全成功要么完全失败.这听起来是一个非常稳定的行为)

背景:几年前,我在团队中使用C#/ NHibernate/Spring.Net实现了一个相当大的ERP软件.对服务器的往返实际上是这样实现的:事务在进入任何控制器逻辑之前打开,并在退出控制器后被提交或回滚.该交易在框架中进行管理,因此没有人必须关心它.这是一个出色的解决方案:稳定,简单,只有少数架构师不得不关心交易问题,团队的其他成员只是实现了功能.

从我的角度来看,这是我见过的最好的设计.当我尝试使用Spring MVC重现相同的设计时,我进入了一个带有延迟加载和事务问题的噩梦,每次都有相同的答案:不要让控制器进行事务处理,但为什么呢?

提前感谢您的答案!

java controller spring-mvc transactional

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

如何在AngularJS客户端和Node.js服务器之间重用代码

在AngularJS客户端和Node.js服务器之间重用/共享代码的最佳实践是什么?

我实现了一个AngularJS应用程序.现在我需要实现一个RESTful服务器,为客户端提供数据.在服务器上的一些客户端的角度服务可以重新使用,例如第三方宁静的客户端在Facebook /谷歌/ Twitter的,它使用集中的角度依赖注入和依赖$http,$q以及许多其他服务.

理想情况下,由于我非常喜欢AngularJS中包含的依赖注入框架,我会发现有一种基于AngularJS的服务器框架非常好.一种服务器框架,包括依赖注入框架和与UI无关的所有角度服务,并添加所需的服务器端功能,如路由和身份验证.但不幸的是,我没有找到任何解决方案.(请告诉我这个框架是否存在!)

那么,为了至少在客户端和服务器之间重用代码,还有什么选择?特别是根据代码重新使用代码$http,$q以及角度框架和角度第三方(如angular-cache)中包含的其他AngularJS服务.

javascript code-reuse node.js express angularjs

25
推荐指数
2
解决办法
6319
查看次数

科尔多瓦准备做什么?

我检查了文档,但没有找到关于此命令的明确说明.

那么有谁知道命令究竟是什么cordova prepare

  1. 它是否更新平台特定的www文件夹?
    • 如果是,它是否复制了根的全部内容www
  2. 它是否更新平台特定的图标?
    • 如果是,应该在哪里找到源图标?
  3. 它是否更新了平台特定的启动画面?
    • 如果是,应该在哪里找到源闪屏?
  4. 它是否更新其他平台特定资源?
  5. 它更新了android清单吗?
    • 如果是,如何自定义清单,以便cordova prepare合并自定义和生成的行?
  6. 在android平台上更新了哪些其他文件?
  7. 在ios平台中更新了哪些其他文件?

mobile cross-platform cordova

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

WPF:是否有资源更改触发的事件

有没有办法获得特定WPF资源的价值变化的通知?

我们需要在WPF应用程序中动态调整内容字体大小...对于WPF控件,我们设置Control.FontSize为动态资源,字体自动调整大小.不幸的是,我们还有一个嵌入式winforms控件,其字体大小不能这样设置.我们的想法是订阅在每个资源值更改时触发的事件,并实现winforms控件的自定义刷新.有什么建议吗?

先感谢您!

c# wpf resourcedictionary winforms

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

Docker Compose:哪个语法产生一个绑定安装,产生一个卷

在 Docker Compose 文档中,这里有以下与文件volumes部分相关的示例docker-compose.yml

volumes:
  # (1) Just specify a path and let the Engine create a volume
  - /var/lib/mysql

  # (2) Specify an absolute path mapping
  - /opt/data:/var/lib/mysql

  # (3) Path on the host, relative to the Compose file
  - ./cache:/tmp/cache

  # (4) User-relative path
  - ~/configs:/etc/configs/:ro

  # (5) Named volume
  - datavolume:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

哪些语法会产生绑定安装,哪些会产生docker 卷?在文档的某个地方,这两个概念是严格区分的,但在这个地方它们混合在一起......所以我不清楚。

syntax volumes docker docker-compose

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

Spring JpaRepository 自定义实现是否自动事务处理?

一切都在标题中......

我有一个JpaRepository<User, Long>使用其他自定义方法扩展的存储库,遵循http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html 中描述的模式

Spring 文档说:默认情况下,存储库实例上的 CRUD 方法是事务性的。对于读取操作,事务配置 readOnly 标志设置为 true,所有其他操作都使用普通的 @Transactional 进行配置

  • 这是否适用于自定义方法?有交易吗?
  • 进阶:我在哪里可以自己找到答案?(即哪个类的 Spring 框架负责生成动态代理和装饰调用?)

先感谢您!

spring repository transactional

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

Autofac 枚举不适用于多个类型或模块的注册

autofac文档状态:

当 Autofac 注入类型为构造函数的参数时,IEnumerable<ITask>它不会查找提供IEnumerable<ITask>. 相反,容器将找到 ITask 的所有实现并注入所有这些实现。

但实际上,它添加每个已注册类型的次数与已注册的次数相同。因此,如果您按以下方式注册一个课程两次:

builder.RegisterType<A>(); 
builder.RegisterType<A>(); 
Run Code Online (Sandbox Code Playgroud)

然后你在枚举中得到两个项目!!在单个模块中,这不是问题,因为您显然会注意仅注册一次您的类型。但是如果你有一个被多个模块注册的共享模块(典型的菱形模块依赖关系图),那么你在枚举中得到的项与共享模块已被其他人注册的一样多......

这是一个错误吗?有没有办法强制枚举为每个实现提供单个项目,如文档中所述,不再有?

c# autofac autofac-module

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

Facebook 爬虫目前是否在解析 DOM 之前解释 javascript?

以下链接似乎表明它不能:Facebook Sharer 在共享我的 URL 时如何选择图像和其他元数据?

但我想知道目前情况是否仍然如此......(Facebook 开发网站上的文档没有给出关于这一点的任何精确信息)

javascript facebook web-crawler

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

将线程的TaskScheduler存储在字段中是否安全?

将UI线程的TaskScheduler存储在字段中是否安全,如下所示:

class TaskSchedulerReference {

    private readonly _uiTaskScheduler; 

    // Constructor is called by the UI Thead 
    public TaskSchedulerReference() {
        _uiTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext()
    }

    public TaskScheduler UiTaskScheduler { get { return _uiTaskScheduler; } }
}
Run Code Online (Sandbox Code Playgroud)

...这样就可以随时从Task.ContinueWith(action, TaskSchedulerReference.UiTaskScheduler)回调中的任何后台线程通知UI .

是否保证在整个应用程序生命周期中引用仍然有效?

c# wpf asynchronous async-await

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

什么是C#`Interlocked.Exchange(Object,Object):Object`的Java等价物?

C#的Java等价物是Interlocked.Exchange(Object, Object) : Object什么?Java中是否有一种方法可以在没有锁定的单个原子步骤中执行以下操作:1)在本地存储变量的引用2)设置对同一变量的另一个引用?

c# java locking interlocked

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

带有persistence.xml的Intellij JPA控制台

我正在使用Intellij 13+设置一个不含xml的持久性JPA/Hibernate 4 +/Spring 3+.当我尝试在jpa控制台中执行查询时,出现以下错误:

javax.persistence.PersistenceException: Unable to build entity manager factory
java.lang.RuntimeException: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.PostgreSQL9Dialectt.PostgreSQL9Dialect] as strategy [org.hibernate.dialect.Dialect]
Run Code Online (Sandbox Code Playgroud)

使用默认的postgres方言,我得到相同的错误.知道发生了什么事吗?

配置提取:

<bean id="entityManagerFactory"
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.wikiz.service.model.rep" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    </property>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            <prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
            <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
        </props>
    </property>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${db.driver}"/>
    <property name="url" value="${db.url}"/>
    <property name="username" value="${db.user}"/>
    <property name="password" value="${db.pass}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

和变量:

hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=create
Run Code Online (Sandbox Code Playgroud)

spring jpa intellij-idea

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

保持鼠标事件从WindowsFormsHost上冒泡

我在WPF WindowsFormsHost中具有Winforms控件。Winforms控件是被动的,不能处理任何鼠标事件。应该像往常一样从WPF可视树中最内部的WPF控件引发鼠标事件,因此应使用WindowsFormsHost(或下一个)。但是根本不会触发任何事件。

为了实现此目的,应该如何配置WindowsFormsHost(Winforms控件)?

备注:KeyDown和KeyUp的行为符合预期。但是鼠标事件却没有,如下面的Snoop屏幕截图所示:

在此处输入图片说明

c# wpf event-bubbling windowsformshost winforms

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

引用当前wix-library的文件夹(wixlib)

如何定义相对于我目前所在的"wix-library"项目的File/@ Source?

如果我使用:

<File Id="f1" Source=".\bla"/>
Run Code Online (Sandbox Code Playgroud)

然后 "." 是指调用"Windows Installer Package"项目的根目录,因此无法使用!

wix path wixlib

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