标签: spring-annotations

如何向Spring MVC添加自定义注释?

任何人都可以解释我需要做些什么来实现我自己的注释,这将为我的网络请求添加功能?

例如:

@Controller
public class MyController {
    @RequestMapping("/abc")
    @RequiresSomeSpecialHandling
    public void handleSecureRequest() {
    }
}
Run Code Online (Sandbox Code Playgroud)

@RequiresSomeSpecialHandling将是我自己的注释,导致在给定的Web请求之前或之后完成一些特殊工作/abc.

我知道在非常高的层次上我需要编写一个bean后处理器,扫描我的注释类,并在需要时注入自定义mvc拦截器.但是有没有简化此任务的快捷方式?特别是对于上面的两个例子.

提前致谢,

spring spring-mvc spring-annotations

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

你能指定多个@Conditional注释吗?

使用spring-boot,可以@Conditional在一个@Bean定义上使用多个注释吗?如果是这样,是否有可预测的订单可以解决?换句话说,我可以@ConditionalOnResource and @ConditionalOnMissingBean在同一个@Beandef 上指定两者吗?哪一个优先?

我正在使用spring-boot 1.0.2.RELEASE.

谢谢,贾斯汀

spring spring-annotations spring-boot

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

Spring SQL Injection中的@Query注释是否安全?

对于Spring,传递给@Query注释的字符串的参数是否被视为纯数据,例如,如果您使用的是PreparedStatement类或任何旨在阻止SQL注入的方法?

final String MY_QUERY = "SELECT * FROM some_table WHERE some_column = ?1";

@Query(value=MY_QUERY, nativeQuery = true)
List<SomeEntity> findResults(String potentiallyMaliciousUserInput);
Run Code Online (Sandbox Code Playgroud)

结论:上面的代码是否容易受到SQL注入的影响?

java spring sql-injection spring-annotations

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

如何在使用注释时声明Spring bean autowire-candidate ="false"?

我正在使用@ComponentScan@Component定义我的春豆.我想要的是声明其中一个bean autowire-candidate=false.

这可以使用xml中的此属性来完成.是不是注释中的等价物?

我想要这个的原因是因为我有2个相同接口的实现,我不想使用@Qualifier.

编辑:使用@Primary是一个有效的解决方案,但autowire候选人在我看来似乎是一个有用的功能与自己的语义.

谢谢

java spring spring-annotations

10
推荐指数
2
解决办法
6294
查看次数

@PostFilter和@PreFilter如何工作

作为spring注释的新手,我需要澄清下面的代码.

@PostFilter("hasPermission(filterObject, 'READ') or hasRole('ROLE_ADMIN')")

    public List<User> getUsers(String orderByInsertionDate,
            Integer numberDaysToLookBack) throws AppException
Run Code Online (Sandbox Code Playgroud)

;

所以这意味着getUsers返回的用户列表将只包含那些"READ"对调用对象具有完全访问权限或者调用对象具有角色的元素"ROLE_ADMIN".谢谢.

java spring annotations spring-security spring-annotations

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

Spring @Value空列表默认​​为

有没有办法在Spring中将空列表设置为属性的默认值,如下所示:

@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;
Run Code Online (Sandbox Code Playgroud)

显然不是新的ArrayList,但我需要一个空列表.

java spring spring-annotations

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

Spring @Value带注释的方法,当属性不可用时使用默认值

情况

我将.properties文件中的属性注入到使用@Value注释的字段中.但是,此属性提供敏感凭据,因此我将其从存储库中删除.我仍然希望如果有人想要运行项目并且没有.properties文件,其凭据将默认值设置为字段.

问题

即使我将默认值设置为字段本身,当.properties文件不存在时,我也会遇到异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxx': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'secret' in string value "${secret}"
Run Code Online (Sandbox Code Playgroud)

这是带注释的字段:

 @Value("${secret}")
 private String ldapSecret = "secret";
Run Code Online (Sandbox Code Playgroud)

我预计在这种情况下只会设置普通字符串"secret".

java spring spring-annotations properties-file spring-boot

10
推荐指数
2
解决办法
9925
查看次数

测试Spring @MVC注释

前几天我遇到了一个问题,其中一个@Valid注释被意外地从控制器类中删除了.不幸的是,它没有破坏我们的任何测试.我们的单元测试都没有实际运行Spring AnnotationMethodHandlerAdapter路径.我们直接测试我们的控制器类.

如果我的@MVC注释错误,我该如何编写一个正确失败的单元或集成测试?有没有办法我可以让Spring找到并使用MockHttpServlet查找和运用相关的控制器?

java spring unit-testing spring-mvc spring-annotations

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

Spring注释@ModelAttribute和@Valid

使用@ModelAttribute和有@Valid什么好处?

哪些是差异?

可以一起使用它们吗?

spring spring-mvc spring-annotations spring-data

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

如果我们已经使用了 componentScan 注释,为什么还需要 EntityScan 、 EnableJpaRepositories 注释?

我已经在 app类ComponentScan中使用注释,但是如果我仅使用此注释,它将在获取存储库引用时出现问题。因此,为了克服这个问题,我正在使用和注释。MainSpring BootEntityScanEnableJpaRepositoriescomponentScan

@EntityScan(basePackages={"com.gonkar.fleetms.models"})
@EnableJpaRepositories(basePackages={"com.gonkar.fleetms.repositories"})
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么需要使用其他两个注释?如果我已经在使用@ComponentScan.

java spring spring-annotations spring-boot

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