Magician-Containers is a container management module that allows for the unified management of beans in a project, which brings two extensions: AOP and timed tasks
<!-- This is the jar package build by this project -->
<dependency>
<groupId>com.magician.containers</groupId>
<artifactId>Magician-Containers</artifactId>
<version>1.0.1</version>
</dependency>
<!-- This is Magician -->
<dependency>
<groupId>com.github.yuyenews</groupId>
<artifactId>Magician</artifactId>
<version>2.0.6</version>
</dependency>
<!-- This is the log package, which supports any package that can be bridged with slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.12</version>
</dependency>
Cannot be used on controllers
@MagicianBean
public class DemoBean {
}
Writing the logic for AOP
public class DemoAop implements BaseAop {
/**
* Before method execution
* @param args Parameters of the method being executed
*/
public void startMethod(Object[] args) {
}
/**
* After method execution
* @param args Parameters of the method being executed
* @param result Return data of the executed method
*/
public void endMethod(Object[] args, Object result) {
}
/**
* Method execution exception
* @param e Exception information for the executed method
*/
public void exp(Throwable e) {
}
}
Listening to methods that need to be listened to
@MagicianBean
public class DemoBean {
@MagicianAop(className = DemoAop.class)
public void demoAopMethod() {
}
}
@MagicianBean
public class DemoBean {
// loop: Rotation interval, in milliseconds
@MagicianTimer(loop=1000)
public void demoTimerMethod() {
}
}
@MagicianBean
public class DemoBean {
private DemoBean demoBean = BeanUtil.get(DemoBean.class);
}