标签: annotations

用于注释的 AOP 在 Spring Boot 中不起作用

我有 myannotation,每当我的方法(有 myannotation)被执行时,就应该调用 AOP,但它在我的 Spring Boot 控制器中不起作用。但是它适用于具有其他注释的方法。请帮助我了解会发生什么。

更新:我的注释

 @Retention(RUNTIME)
    @Target({ METHOD, CONSTRUCTOR })
    public @interface MyAnnotation {
    }

@Aspect
@Component
public class AnnotationAspect {
    private static final String POINTCUT_METHOD1 = "@annotation(com.somepackage.MyAnnotation)";


    @Around(POINTCUT_METHOD1)
    public Object weaveJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable {
        try {
            System.out.println("Beforeee " + joinPoint);
            joinPoint.proceed();
        } finally {
            System.out.println("Afterrr " + joinPoint);
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

场景一:(工作中)

@Controller
@RequestMapping("user")
public class ArticleController {

    @GetMapping("article/{id}")
    @MyAnnotation // here it is
    public ResponseEntity<String> getArticleById(@PathVariable("id") Integer id) 
 {
        return new ResponseEntity<String>(dummyMethod(), …
Run Code Online (Sandbox Code Playgroud)

java spring annotations spring-boot

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

symfony 如何解析和使用注解

例如,使用 Symfony 注释进行路由是相当惊人的,但我想知道这个框架如何解析注释并提取注释?例如:

 /**
 * @Route("/tehran", name="tehran")
 */
Run Code Online (Sandbox Code Playgroud)

然后将其用作下一个控制器方法的路由。

php parsing annotations symfony symfony4

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

方法拦截的自定义注释中的元素无法解析为变量错误

Spring 和 AOP 编程新手。致力于 Spring AOP 教程,编写拦截方法调用的方面。想要启用时间记录。

\n\n

按照教程的指示,我创建了一个用于日志记录的自定义注释和一个方面来定义调用此注释时应执行的操作。\n下面的代码是 TrackTime 注释:

\n\n
package com.in28minutes.springboot.tutorial.basics.example.aop;\n\nimport java.lang.annotation.Retention;\nimport java.lang.annotation.Target;\n\n@Target(ElementType.METHOD)\n@Retention(RetentionPolicy.RUNTIME)\npublic @interface TrackTime {}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是 Eclipse 显示错误 \xe2\x80\x93\n\xe2\x80\x9cElement 无法解析为变量/保留无法解析为变量\xe2\x80\x9d

\n\n

然后,我使用 \xe2\x80\x98TrackTime\xe2\x80\x99 注释创建了一个名为 MethodExecutionCalculationAspect 的方面。

\n\n
@Around("@annotation(com.in28minutes.springboot.tutorial.\nbasics.example.aop.TrackTime)")\n
Run Code Online (Sandbox Code Playgroud)\n\n

方法执行计算方面

\n\n
package com.in28minutes.springboot.tutorial.basics.example.aop;\n\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org.aspectj.lang.annotation.Around;\nimport org.aspectj.lang.annotation.Aspect;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.context.annotation.Configuration;\n\n@Aspect\n@Configuration\npublic class MethodExecutionCalculationAspect {\n    private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n@Around("@annotation\n(com.in28minutes.springboot.tutorial.basics.example.aop.TrackTime)")\n\n    public void around(ProceedingJoinPoint joinPoint) throws Throwable {\n        long startTime = System.currentTimeMillis();\n\n    joinPoint.proceed();\n    long timeTaken = System.currentTimeMillis() - startTime;\n    logger.info("Time Taken by {} is {}", joinPoint, timeTaken);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

} …

spring annotations aspect

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

如何防止 PHP CS Fixer 修复特定函数名称?

当使用 PHP CS Fixer 解决文件保存时的语法错误并使用Symfony规则集时,任何非驼峰命名法的函数名称都将被纠正(如预期)。

然而,在编写基于 PHP 单元的测试时,通常的做法是将函数名称命名为Snake_case。这通常意味着 PHP CS Fixer 会自动解决问题,即使不需要。

是否可以在函数上方放置特定的注释来防止这种情况发生?

php annotations phpcs php-cs-fixer

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

Throw 标签的 PHP / Symfony 注释

我最近遇到了一些让我在 Symfony 中进行注释的小事(不确定它是否也是纯 PHP 的事情)。

新的路线注释如下所示: #[Route('route', name: 'route_name')]

当我想要相同类型的注释时,@throws我找不到任何方法来代替看起来像这样的旧类型:

/**
 * @throws Exception
 */
Run Code Online (Sandbox Code Playgroud)

所以我想要新类型的注释,即使是@throws

php annotations symfony

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

Hibernate/JPA注释 - 未知实体

几个月来一直运行良好的应用程序已经停止了几个月@Entity来已经成为其中一部分的JPA 注释.随着我的集成测试运行,我看到了几十个" org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem"类型错误.

我不清楚这里出了什么问题.

我没有hibernate.cfg.xml文件,因为我正在使用Hibernate实体管理器.由于我只使用注释,因此我的实体没有.hbm.xml文件.我的persistence.xml文件是最小的,并META-INF按照预期生活.

我显然错过了一些东西,但不能把手指放在上面.

我正在使用hibernate-annotations 3.2.1,hibernate-entitymanager 3.2.1,persistence-api 1.0和hibernate 3.2.1.hibernate-commons-annotations也是项目POM的一部分,但我不知道这是否相关.

是否有一个已消失的web.xml条目,或者一个意外删除的Spring配置条目?

java annotations hibernate jpa

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

注释局部变量或方法参数

根据API中的类ElementType,您可以注释局部变量和方法参数.

怎么做的?

java variables annotations metaprogramming

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

java 1.6.013中的@WebServlet注释支持

我正特步进入Servlets和3.0的世界,我看到了一些示例和教程中使用的方法和注释,这些方法和注释在JAVA 6.0发布时已经讨论过(现在有),现在当我尝试使用上面的内容时注释,例如在Eclipse中它不识别它,虽然我安装了java 1.6.013,在Eclipse中它说我正在使用jre6.当我尝试使用谷歌搜索时,我偶然发现了这个页面上有关WebServlet Annotation的内容,它在右上角:DRAFT.那是什么意思?是否在1.6.013中支持@WebServlet?是我的Eclipse的问题?

非常感谢能帮助我的任何人

编辑:我现在明白我已经搞得一团糟了但是我已经下载了一个Jar的Servlets 3.0 API,至少对于@WebServlet注释有效,但是给了我一个地狱.

java eclipse annotations servlets java-ee-6

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

SQLite注入字符串列表

谁能告诉我一个方法来防止SQL注入用于建立查询时SQLite,其中WHERE子句的"myval IN (string_1, ... , string_n)"条件?

我想通过注释动态构建命令文本,并从字符串列表中添加这些注释的参数.有没有更简单的方法 ?

谢谢.

c# sqlite annotations code-injection

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

我想知道是否可以创建一个强制执行特定返回类型的Java Annotation?

我想知道是否可以创建一个Annotation强制执行特定返回类型的操作?

我想要的是一种创建Annotation和使用它的方法:

@MarkerAnnotationForcingStringReturnType
public String someWebflowMethod(...){
    ...
    return "someString";
}
Run Code Online (Sandbox Code Playgroud)

然后我可以拥有我想要的任何方法名称,但它必须返回,String例如.

java annotations

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