Skip to content

Commit bd697c3

Browse files
author
Eugen
committed
Merge pull request eugenp#70 from mgooty/master
Added sample code for Spring events and Spring profiles.
2 parents b862055 + b5cc62b commit bd697c3

17 files changed

Lines changed: 307 additions & 0 deletions
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.baeldung.profiles;
2+
3+
public interface DatasourceConfig {
4+
public void setup();
5+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baeldung.profiles;
2+
3+
import org.springframework.context.annotation.Profile;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
@Profile("dev")
8+
public class DevDatasourceConfig implements DatasourceConfig {
9+
10+
@Override
11+
public void setup() {
12+
System.out.println("Setting up datasource for DEV environment. ");
13+
}
14+
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baeldung.profiles;
2+
3+
import org.springframework.context.annotation.Profile;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
@Profile("production")
8+
public class ProductionDatasourceConfig implements DatasourceConfig {
9+
10+
@Override
11+
public void setup() {
12+
System.out.println("Setting up datasource for PRODUCTION environment. ");
13+
}
14+
15+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.baeldung.profiles;
2+
3+
import org.springframework.context.annotation.ComponentScan;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ComponentScan("org.baeldung.profiles")
8+
public class SpringProfilesConfig {
9+
10+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.baeldung.springevents.asynchronous;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.ComponentScan;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.context.event.ApplicationEventMulticaster;
7+
import org.springframework.context.event.SimpleApplicationEventMulticaster;
8+
import org.springframework.core.task.SimpleAsyncTaskExecutor;
9+
10+
@Configuration
11+
@ComponentScan("org.baeldung.springevents.synchronous")
12+
public class AsynchronousSpringEventsConfig {
13+
14+
@Bean(name = "applicationEventMulticaster")
15+
public static ApplicationEventMulticaster simpleApplicationEventMulticaster() {
16+
final SimpleApplicationEventMulticaster simpleApplicationEventMulticaster = new SimpleApplicationEventMulticaster();
17+
simpleApplicationEventMulticaster.setTaskExecutor(new SimpleAsyncTaskExecutor());
18+
return simpleApplicationEventMulticaster;
19+
}
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baeldung.springevents.synchronous;
2+
3+
import org.springframework.context.ApplicationListener;
4+
import org.springframework.context.event.ContextRefreshedEvent;
5+
import org.springframework.stereotype.Component;
6+
7+
@Component
8+
public class ContextRefreshedListener implements ApplicationListener<ContextRefreshedEvent> {
9+
10+
@Override
11+
public void onApplicationEvent(final ContextRefreshedEvent cse) {
12+
System.out.println("Handling context re-freshed event. ");
13+
}
14+
15+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.baeldung.springevents.synchronous;
2+
3+
import org.springframework.context.ApplicationEvent;
4+
5+
public class CustomSpringEvent extends ApplicationEvent {
6+
private static final long serialVersionUID = -8053143381029977953L;
7+
8+
private String message;
9+
10+
public CustomSpringEvent(final Object source, final String message) {
11+
super(source);
12+
this.message = message;
13+
}
14+
15+
public String getMessage() {
16+
return message;
17+
}
18+
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.baeldung.springevents.synchronous;
2+
3+
import org.springframework.context.ApplicationListener;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
public class CustomSpringEventListener implements ApplicationListener<CustomSpringEvent> {
8+
9+
@Override
10+
public void onApplicationEvent(final CustomSpringEvent event) {
11+
System.out.println("Received spring custom event - " + event.getMessage());
12+
}
13+
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.baeldung.springevents.synchronous;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.context.ApplicationEventPublisher;
5+
import org.springframework.stereotype.Component;
6+
7+
@Component
8+
public class CustomSpringEventPublisher {
9+
10+
@Autowired
11+
private ApplicationEventPublisher applicationEventPublisher;
12+
13+
public void publishEvent(final String message) {
14+
System.out.println("Publishing custom event. ");
15+
final CustomSpringEvent customSpringEvent = new CustomSpringEvent(this, message);
16+
applicationEventPublisher.publishEvent(customSpringEvent);
17+
}
18+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.baeldung.springevents.synchronous;
2+
3+
import org.springframework.context.annotation.ComponentScan;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ComponentScan("org.baeldung.springevents.synchronous")
8+
public class SynchronousSpringEventsConfig {
9+
10+
}

0 commit comments

Comments
 (0)