Java 如何在SpringRoo项目中调用file.aj中的方法?
如何在SpringRoo项目中调用file.aj中的方法 e、 g.如何从Employee.java中的方法callMethod()调用Employee\u Roo\u Jpa\u ActiveRecord.aj中的方法Employee.findAllEmployees() 文件:Employee.javaJava 如何在SpringRoo项目中调用file.aj中的方法?,java,spring,aspectj,spring-roo,Java,Spring,Aspectj,Spring Roo,如何在SpringRoo项目中调用file.aj中的方法 e、 g.如何从Employee.java中的方法callMethod()调用Employee\u Roo\u Jpa\u ActiveRecord.aj中的方法Employee.findAllEmployees() 文件:Employee.java 1 package com.tap.domain; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Ar
1 package com.tap.domain;
2
3 import java.text.SimpleDateFormat;
4 import java.util.ArrayList;
5 import java.util.Calendar;
6
7 import javax.validation.constraints.Max;
8 import javax.validation.constraints.Min;
9
10 import org.aspectj.lang.annotation.Aspect;
11 import org.springframework.beans.factory.annotation.Value;
12 import org.springframework.roo.addon.javabean.RooJavaBean;
13 import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
14 import org.springframework.roo.addon.tostring.RooToString;
15 import org.springframework.stereotype.Component;
16
17 @RooJavaBean
18 @RooToString
19 @RooJpaActiveRecord
20 @Component("employee")
21 public class Employee {
22
23 private long id;
24
25 private String name;
26 public void callMethod() {
...
...
30 }
文件:Employee\u Roo\u Jpa\u ActiveRecord.aj
6 import java.util.List;
7 import javax.persistence.EntityManager;
8 import javax.persistence.PersistenceContext;
9 import org.springframework.transaction.annotation.Transactional;
10 import com.tap.domain.Employee;
11
12 privileged aspect Employee_Roo_Jpa_ActiveRecord {
13
14 @PersistenceContext
15 transient EntityManager Employee.entityManager;
...
27 public static List<Employee> Employee.findAllEmployees() {
28 return entityManager().createQuery("SELECT o FROM Employee o", Emplo yee.class).getResultList();
29 }
...
6导入java.util.List;
7导入javax.persistence.EntityManager;
8导入javax.persistence.PersistenceContext;
9导入org.springframework.transaction.annotation.Transactional;
10导入com.tap.domain.Employee;
11
12特权方面员工\u Roo\u Jpa\u活动记录{
13
14@PersistenceContext
15临时实体经理员工。实体经理;
...
27公共静态列表Employee.findAllEmployees(){
28返回entityManager();
29 }
...
Roo使用的机制是AspectJ
基本上:employee类在运行时将具有findAllEmployees()
方法,因此您可以调用它:
public void callMethod() {
List<Employee> allEmployees = findAllEmployees();
// now do something with the employees
}
public void callMethod(){
List allEmployees=findAllEmployees();
//现在对员工做点什么
}