Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.DS_Store

.idea
*.iml

.gradle

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

build
out
bin
.settings
.classpath
.project
20 changes: 20 additions & 0 deletions Chapter_04/aop-aspectj/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
plugins {
id 'java'
id "aspectj.gradle" version "0.1.6"
id 'application'
}

group 'com.whezh'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
compile "org.springframework:spring-context:${springVersion}"
}

mainClassName = 'concert.Main'
3 changes: 3 additions & 0 deletions Chapter_04/aop-aspectj/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
springVersion=4.0.7.RELEASE
systemRulesVersion=1.5.0
aspectjVersion=1.8.5
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
172 changes: 172 additions & 0 deletions Chapter_04/aop-aspectj/gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

84 changes: 84 additions & 0 deletions Chapter_04/aop-aspectj/gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Chapter_04/aop-aspectj/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
rootProject.name = 'aop'

30 changes: 30 additions & 0 deletions Chapter_04/aop-aspectj/src/main/java/concert/CriticAspect.aj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package concert;

public aspect CriticAspect {
private CriticismEngine criticismEngine;

pointcut performance():execution(* concert.Performance.perform(..));

pointcut construct():execution(concert.CriticismEngineImpl.new());

after():performance(){
System.out.println(criticismEngine.getCriticism());
}

after():construct(){
System.out.println("After Performance constructor");
}


before():construct(){
System.out.println("Before Performance constructor");
}

public CriticismEngine getCriticismEngine() {
return this.criticismEngine;
}

public void setCriticismEngine(CriticismEngine criticismEngine) {
this.criticismEngine = criticismEngine;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package concert;

public interface CriticismEngine {
String getCriticism();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package concert;

public class CriticismEngineImpl implements CriticismEngine {
private String[] criticismPool;

public CriticismEngineImpl() {
}

@Override
public String getCriticism() {
int i = (int) (Math.random() * criticismPool.length);
return criticismPool[i];
}

public void setCriticismPool(String[] criticismPool) {
this.criticismPool = criticismPool;
}
}
13 changes: 13 additions & 0 deletions Chapter_04/aop-aspectj/src/main/java/concert/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package concert;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("concert.xml");
Performance performance = context.getBean(Performance.class);
performance.perform();
context.close();
}
}
11 changes: 11 additions & 0 deletions Chapter_04/aop-aspectj/src/main/java/concert/Music.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package concert;

import org.springframework.stereotype.Component;

@Component
public class Music implements Performance {
@Override
public void perform() {
System.out.println("Piano Solo");
}
}
Loading