parent
2d2e06dfc0
commit
a0eaa5a0f6
@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-common</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>ruoyi-common-job</artifactId>
|
||||||
|
|
||||||
|
<description>
|
||||||
|
ruoyi-common-job 定时任务
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- xxl-job-core -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.xuxueli</groupId>
|
||||||
|
<artifactId>xxl-job-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-common-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ruoyi.job.config.properties;
|
package com.ruoyi.common.job.config.properties;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
package com.xxl.job.core.glue.impl;
|
||||||
|
|
||||||
|
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||||
|
import com.xxl.job.core.glue.GlueFactory;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuxueli 2018-11-01
|
||||||
|
*/
|
||||||
|
public class SpringGlueFactory extends GlueFactory {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(SpringGlueFactory.class);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* inject action of spring
|
||||||
|
* @param instance
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void injectService(Object instance){
|
||||||
|
if (instance==null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (XxlJobSpringExecutor.getApplicationContext() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Field[] fields = instance.getClass().getDeclaredFields();
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (Modifier.isStatic(field.getModifiers())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object fieldBean = null;
|
||||||
|
// with bean-id, bean could be found by both @Resource and @Autowired, or bean could only be found by @Autowired
|
||||||
|
|
||||||
|
if (AnnotationUtils.getAnnotation(field, Resource.class) != null) {
|
||||||
|
try {
|
||||||
|
Resource resource = AnnotationUtils.getAnnotation(field, Resource.class);
|
||||||
|
if (resource.name()!=null && resource.name().length()>0){
|
||||||
|
fieldBean = XxlJobSpringExecutor.getApplicationContext().getBean(resource.name());
|
||||||
|
} else {
|
||||||
|
fieldBean = XxlJobSpringExecutor.getApplicationContext().getBean(field.getName());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
if (fieldBean==null ) {
|
||||||
|
fieldBean = XxlJobSpringExecutor.getApplicationContext().getBean(field.getType());
|
||||||
|
}
|
||||||
|
} else if (AnnotationUtils.getAnnotation(field, Autowired.class) != null) {
|
||||||
|
Qualifier qualifier = AnnotationUtils.getAnnotation(field, Qualifier.class);
|
||||||
|
if (qualifier!=null && qualifier.value()!=null && qualifier.value().length()>0) {
|
||||||
|
fieldBean = XxlJobSpringExecutor.getApplicationContext().getBean(qualifier.value());
|
||||||
|
} else {
|
||||||
|
fieldBean = XxlJobSpringExecutor.getApplicationContext().getBean(field.getType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fieldBean!=null) {
|
||||||
|
field.setAccessible(true);
|
||||||
|
try {
|
||||||
|
field.set(instance, fieldBean);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
logger.error(e.getMessage(), e);
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
logger.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
com.ruoyi.common.job.config.XxlJobConfig
|
||||||
Loading…
Reference in new issue