草庐IT

@Transactional注解与try catch

全部标签

详细分析Java中的@JsonSerialize注解

目录前言1.核心知识2.基本知识3.Demo3.1jsontest13.2jsontest24.总结前言对应序列化的相关知识可看我之前的文章:详解Java中的serialVersionUID概念以及作用(附上Demo)通过理解核心知识,再去品味总结的基本知识,可能理解更加透彻对于序列化的场景,也可用于序列化JSON数据给前端的时候,某些值如果为空的时候,需要返回给前端的状态信息,对应需要使用到@JsonSerialize1.核心知识@JsonSerialize是Jackson库中的一个注解,用于指定在将Java对象序列化为JSON格式时,如何进行自定义的序列化处理。通过这个注解,指定一个自定义

java - 如何获取ContainerRequest中的session Object才能使用注解@RolesAllowed(Role_user)?

我正在使用AppEngine和Jersey构建应用程序。我想使用允许在请求中创建过滤器的注释@RolesAllowed(Role_user)。问题是我们需要配置类SecurityContextFilter。我的目标是获取存储在session中的用户的id,然后直接在我的函数中检查他们的角色:publicContainerRequestfilter(ContainerRequestrequest)类SecurityContextFilter。我需要注入(inject)HttpRequest来获取session,但是当我注入(inject)它时,我得到一个异常Java.lang.Null。

java - Shiro:处理注解抛出的异常

我正在使用Shiro注释来检查授权,如下所示:@RequiresPermissions("addresses:list")publicModelAndViewgetCarrierListPage(){returnnewModelAndView("addressList","viewData",viewData);}我的问题是:如果用户没有注释要求的权限,则会抛出异常。如果出现异常,我宁愿将用户重定向到不同的URL。我该怎么做?这是我的shiro过滤器配置: 最佳答案 看起来您正在使用Spring。我在SpringMVC中通过在Con

java - 带有枚举参数的 Spring @Query 注解

是否可以使用带@Query注解的枚举参数?这是我用来查找用户角色的代码:RoleuserRole=roleRepository.findByRole(Roles.USER);if(userRole==null){LOGGER.debug("Norolefoundwithrole:{}",Roles.USER);}然后打印出来Norolefoundwithrole:ROLE_USER但如果我试图找到所有角色,这就是我得到的:for(Roler:roleRepository.findAll())LOGGER.debug("{}",r);Role@8a8c0a[roleId=1,role=r

java - 如何用Ant编译注解处理器?

这个问题看起来很明显,但是实现起来对我来说还是挺难的。我的目标是编写Ant构建脚本来编译一些需要由AnnotationProcessor生成的其他类的类。我有一个自定义注释及其处理器实现(继承自AbstractProcessor类)。据我所知,我需要:编译注解处理器对一些带注释的类运行编译器以生成新类。编译需要生成类的类代码(第1步和第2步):实际上,第一个任务是执行良好并为Annotation处理器实现编译.class文件。它在第二个任务处停止。Ant说:请求未编译的注解处理,但未找到处理器。我做错了什么?也许我应该将注释处理器类放在.jar中?或者提供扩展名为.class的文件名作

java - @Transactional 是做什么的?

这个问题在这里已经有了答案:Spring-@Transactional-Whathappensinbackground?(6个答案)关闭3年前。我知道这可能是重复的,具有讽刺意味的是,在我开始到处阅读之前,我以为我知道它的用途(不用说但我还是要说,不对的地方请指正):它使程序员不必使用transaction.begin()和commit()。如果您有一个调用两个DAO方法的方法,这两个DAO方法通常每个都有包含实际操作的transaction.begin和transaction.commit并调用它们,这将导致两个事务(如果以前的DAO方法也应该回滚,则可能会出现回滚问题)。但是如果您

java - 无法使用 Java 8 修改 package-info.java 的注解

我遇到了一个问题,我必须修改一个包信息。包信息.java@javax.xml.bind.annotation.XmlSchema(namespace="http://some.url/soap/style/document_literal")packageorg.example.wsdl.wsdl;以下代码适用于1.7.0_45。//donotloadanyclassesbefore,thiscouldbreakthefollowingcode.ClasspkgInfo=Class.forName("org.example.wsdl.package-info",true,NameSpa

java - 声明式事务 (@Transactional) 在 Spring 中不适用于 @Repository

我正在尝试使用Spring、JPA和嵌入式H2数据库制作简单的应用程序。最近我在声明式交易中遇到了这个奇怪的问题。如果我使用@Repository注释Autowiring我的DAO,他们就不会提交。更具体地说,我在刷新时遇到异常:javax.persistence.TransactionRequiredException:ExceptionDescription:Notransactioniscurrentlyactive这是我的设置:持久性.xmlorg.eclipse.persistence.jpa.PersistenceProviderfalse实体@Entity@Table(n

enums - Java 枚举单例的注解

正如Bloch在EffectiveJava2ndEdition的第3项(“使用私有(private)构造函数或枚举类型强制实现单例属性”)中所述,单元素枚举类型是最好的实现单例的方法。不幸的是,旧的私有(private)构造函数模式仍然非常普遍和根深蒂固,以至于许多开发人员在创建枚举单例时不明白我在做什么。在类声明上方的一个简单的//EnumSingleton注释会有所帮助,但它仍然留下了一个可能性,即另一个程序员稍后可能会出现并向枚举添加第二个常量,从而破坏单例属性.对于私有(private)构造函数方法所存在的所有问题,在我看来,它比枚举单例更能self记录。我想我需要的是一个注释

Javax @NotNull 注解用法

我有一个简单的方法来获取给定companyId的文档列表。方法如下:@OverridepublicListgetDocumentList(@NotNullIntegercompanyId){Companycompany=newCompany(companyId);returnthis.documentRepository.findByCompany(company);}我想使用Javax验证约束来确保传入的companyId不是null。但它似乎没有任何效果,因为我能够传入一个null值,它会向下流向存储库上的findByCompany调用。我还在@NotNull之前添加了@Valid