我正在尝试使用带注释的TX Spring支持。
应用程序上下文XML:
<?xml ...>
<tx:annotation-driven/>
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
...
</bean>
<bean id="repository" class="Repository">
<constructor-arg ref="dataSource"/>
</bean>
</beans>
实际代码:
public class Repository {
@Transactional
public void save(Op op) {
System.out.println("Transaction active:::: " + TransactionSynchronizationManager.isActualTransactionActive());
...
}
}
调用代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/integration-context.xml"})
public class RepositoryTest {
@Autowired
private Repository repository;
@Test
public void testRepositoryPersistence() {
Op op = mock(Op.class);
repository.save(op);
}
}
它给出了 FALSE。
我究竟做错了什么?
您应该在配置中添加它
<context:annotation-config/>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
在您的RepositoryClass上添加一个接口
public class Repository implements IRepository{
@Transactional
public void save(Op op) {
System.out.println("Transaction active:::: " + TransactionSynchronizationManager.isActualTransactionActive());
...
}
}
这在你的测试课中
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/integration-context.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
public class RepositoryTest extends AbstractTransactionalJUnit4SpringContextTests{
@Autowired
private IRepository repository;
@Test
public void testRepositoryPersistence() {
Op op = mock(Op.class);
repository.save(op);
}
}
请参阅本教程。
我们有一个与DB2(LUW)数据库集成的spring应用程序。 在特定的流中,我们有一个用 在数据库重载情况下,我们观察到上述60秒的超时无法及时引发异常。只有当数据库处理成功或出现错误时,它才会这样做。 失败的消息如下所示: 2020-02-21 18:45:32463错误。。。交易超时:截止日期为2020年2月21日星期五18:40:14 EET 请注意,异常是在数据库释放资源后引发的,在特定
问题内容: 我有一个课程,如何让@JsonIgnore工作。即使将注释放在此处,它也不会影响输出。我正在使用杰克逊。 这是我的Controller方法: 这是我的servlet-context.xml: 问题答案: 我终于找到了解决方案。我将导入声明从 至 基本上,您必须确保在所有地方都使用相同的类。
} 这是我的配置。但似乎/用户/无法被任何人访问。 每当我输入“. hasRole(“RoleName”)”时,它只会拒绝该角色的访问。我得到一个{“时间戳”:1526671066818,“状态”: 403,“错误”:“禁止”,“消息”:“拒绝访问”,“路径”:“/用户”} 从那。 我想要的是,一些请求只允许“USER”访问,例如:“/entrysheet”,“/datasheet”等,而“ADM
计划程序的设置: 和@enableScheduling在类中使用@configuration。 问题是fixedDelay正确工作两次,然后在迭代之间暂停1.5分钟。我在计划注释中尝试过fixedRate或cron,但都没有帮助。 方法在调度任务中的工作时间为100ms,项目有足够的内存,但调度程序的工作速度很慢。
实际上,我对spring代理的行为感到困惑。我想我知道j2ee、cglib和AspectJ的代理机制之间的主要区别。我在配置类中启用了aspectj自动代理,并且aspectj包含在类路径中。 我的配置 最后,我发现是我的服务上的接口导致了这种行为。似乎spring决定在我的服务实现任何接口时使用j2ee代理。如果我移除它们,它就会起作用。 失败: 好的: ...强制spring不使用j2ee代理
有的安全措施起作用,有的不起作用。 如果我的html文件中包含以下内容: 结果是: (->但它不起作用,因为每个人都可以一直看到它) (->按预期工作) (->有效) (->正确) 正如你所看到的,其他人根本没有出现。 html标记如下所示: 我的pom.xml具有以下依赖关系: 我的SecurityConfig如下所示: 所以基本上只要和角色没有任何关系,一切都是正常的。如果它是基于角色的,那么