Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2e60dd2

Browse files
Part 25: Add LoggingAutoConfiguration.java in myfirst-logging-spring-boot-starter module
1 parent 983419b commit 2e60dd2

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package spring.oldboy.logging.config;
2+
3+
import jakarta.annotation.PostConstruct;
4+
import spring.oldboy.logging.aop.SecondAspectAndFirstAdvice;
5+
import spring.oldboy.logging.aop.FirstAspect;
6+
import spring.oldboy.logging.aop.ThirdAspectAndAroundAdvice;
7+
import lombok.extern.slf4j.Slf4j;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
11+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
12+
import org.springframework.context.annotation.Bean;
13+
import org.springframework.context.annotation.Configuration;
14+
import org.springframework.core.annotation.Order;
15+
16+
@Slf4j
17+
/*
18+
Аннотация указывает, что класс объявляет один или несколько методов @Bean и может
19+
обрабатываться контейнером Spring для создания определений компонентов и запросов
20+
на обслуживание для этих компонентов во время выполнения.
21+
*/
22+
@Configuration
23+
/*
24+
Включает поддержку аннотированных bean-компонентов @ConfigurationProperties. Bean-s
25+
@ConfigurationProperties можно зарегистрировать стандартным способом (например, с
26+
помощью методов @Bean) или, для удобства, указать непосредственно в этой аннотации.
27+
*/
28+
@EnableConfigurationProperties(LoggingProperties.class)
29+
/*
30+
@ConditionOn... условие, которое соответствует только тогда, когда указанные классы
31+
находятся в пути к классам. Значение класса можно безопасно указать в классах
32+
@Configuration, поскольку метаданные аннотации анализируются с помощью ASM перед
33+
загрузкой класса. Если ссылку на класс нельзя использовать, можно использовать атрибут
34+
строки имени.
35+
*/
36+
@ConditionalOnClass(LoggingProperties.class)
37+
/*
38+
@Conditional, который проверяет, имеют ли указанные свойства определенное значение.
39+
По умолчанию свойства должны присутствовать в среде и не быть равными false. Атрибуты
40+
hasValue() и matchIfMissing() допускают дальнейшую настройку. Атрибут hasValue() можно
41+
использовать для указания значения, которое должно иметь свойство.
42+
*/
43+
@ConditionalOnProperty(prefix = "app.myfirst.logging",
44+
name = "enabled",
45+
havingValue = "true")
46+
public class LoggingAutoConfiguration {
47+
48+
/* Инициализируем нашу авто-конфигурацию */
49+
@PostConstruct
50+
void init() {
51+
log.info("LoggingAutoConfiguration initialized");
52+
}
53+
54+
@Bean
55+
@ConditionalOnMissingBean
56+
public FirstAspect firstAspect() {
57+
return new FirstAspect();
58+
}
59+
60+
@Bean
61+
@Order(1)
62+
@ConditionalOnMissingBean
63+
public SecondAspectAndFirstAdvice secondAspect() {
64+
return new SecondAspectAndFirstAdvice();
65+
}
66+
67+
@Bean
68+
@Order(2)
69+
@ConditionalOnMissingBean
70+
public ThirdAspectAndAroundAdvice thirdAspect() {
71+
return new ThirdAspectAndAroundAdvice();
72+
}
73+
74+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /