diff --git a/pom.xml b/pom.xml
index cd368885b9b9d68c375844cfc09e636932b9a9cb..8db30b6e406f47441a3f45e26b3905bb1f4336c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -172,11 +172,6 @@
 			<groupId>com.google.guava</groupId>
 			<artifactId>guava</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>cglib</groupId>
-			<artifactId>cglib</artifactId>
-			<version>3.2.5</version>
-		</dependency>
 		<dependency>
 			<groupId>org.slf4j</groupId>
 			<artifactId>slf4j-api</artifactId>
@@ -254,10 +249,6 @@
 			<groupId>org.aspectj</groupId>
 			<artifactId>aspectjrt</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.aspectj</groupId>
-			<artifactId>aspectjweaver</artifactId>
-		</dependency>
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-aspects</artifactId>
@@ -324,6 +315,31 @@
 		</resources>
 
 		<plugins>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>aspectj-maven-plugin</artifactId>
+				<version>1.10</version>
+				<configuration>
+					<complianceLevel>1.8</complianceLevel>
+					<source>1.8</source>
+					<target>1.8</target>
+					<aspectLibraries>
+						<aspectLibrary>
+							<groupId>org.springframework</groupId>
+							<artifactId>spring-aspects</artifactId>
+						</aspectLibrary>
+					</aspectLibraries>
+					<showWeaveInfo>true</showWeaveInfo>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>compile</goal>
+							<goal>test-compile</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
diff --git a/src/main/java/de/thm/arsnova/aop/RangeAspect.java b/src/main/java/de/thm/arsnova/aop/RangeAspect.java
index 161199ef57c71091b5a2d396566d9372361380d2..705b7529d44fd94f9082500236d10078210a671a 100644
--- a/src/main/java/de/thm/arsnova/aop/RangeAspect.java
+++ b/src/main/java/de/thm/arsnova/aop/RangeAspect.java
@@ -26,8 +26,7 @@ import org.aspectj.lang.annotation.Aspect;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Configurable;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -40,9 +39,8 @@ import java.util.regex.Pattern;
  * the response. It only applies to methods of {@link PaginationController}s annotated with
  * {@link de.thm.arsnova.web.Pagination} which return a {@link List}.
  */
-@Component
 @Aspect
-@Profile("!test")
+@Configurable
 public class RangeAspect {
 
 	@Autowired
diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
index ba1d58dba6edb1df16c3380944fbd7c79acdf7a2..e08c83d8806f8baa8af9f45ba0a7cff4f5107586 100644
--- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
+++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
@@ -23,14 +23,14 @@ import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Aspect;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Configurable;
 
 /**
  * Assigns a session to the {@link de.thm.arsnova.services.UserSessionService} whenever a user joins a
  * session.
  */
 @Aspect
-@Service
+@Configurable
 public class UserSessionAspect {
 
 	@Autowired
diff --git a/src/main/java/de/thm/arsnova/config/AppConfig.java b/src/main/java/de/thm/arsnova/config/AppConfig.java
index e3e2ce6007e11c0d991d3d7faa06fbecb8efafe7..00b5d0c0fa9f4b4af754a1eea92ad47c7242e49e 100644
--- a/src/main/java/de/thm/arsnova/config/AppConfig.java
+++ b/src/main/java/de/thm/arsnova/config/AppConfig.java
@@ -34,12 +34,13 @@ import org.springframework.beans.factory.config.PropertiesFactoryBean;
 import org.springframework.cache.CacheManager;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.cache.concurrent.ConcurrentMapCacheManager;
+import org.springframework.context.annotation.AdviceMode;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.context.annotation.Profile;
 import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.aspectj.EnableSpringConfigured;
 import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.env.Environment;
 import org.springframework.core.io.ClassPathResource;
@@ -81,10 +82,10 @@ import java.util.List;
 		"de.thm.arsnova.services",
 		"de.thm.arsnova.web"})
 @Configuration
-@EnableAspectJAutoProxy(exposeProxy = true)
 @EnableAsync
-@EnableCaching
+@EnableCaching(mode = AdviceMode.ASPECTJ)
 @EnableScheduling
+@EnableSpringConfigured
 @EnableWebMvc
 @PropertySource(
 		value = {"classpath:arsnova.properties.example", "file:/etc/arsnova/arsnova.properties"},
diff --git a/src/main/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6681890d4b954ff74c1b496d1e21c49f65c1472c
--- /dev/null
+++ b/src/main/resources/META-INF/aop.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aspectj>
+	<weaver options="-verbose -showWeaveInfo">
+		<!-- only weave classes in our application-specific packages -->
+		<include within="de.thm.arsnova..*"/>
+	</weaver>
+
+	<aspects>
+		<aspect name="de.thm.arsnova.aop.RangeAspect"/>
+		<aspect name="de.thm.arsnova.aop.UserSessionAspect"/>
+	</aspects>
+</aspectj>