MS Lesson5: Spring Configuration
1. @Value
server.port=9595
amazon.url="https://amazon.com/transfer"
package com.amazon.demoapp.config;
import com.amazon.demoapp.controller.Student;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BeanConfiguration {
@Value("${amazon.url}")
private String url;
@Bean
public Student getStudent() {
System.out.println("Azericard url is: " + url);
return new Student();
}
}
2. @ConfigurationProperties
package com.amazon.demoapp.config;
import com.amazon.demoapp.controller.Student;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "amazon")
public class BeanConfiguration {
private String url;
private Integer timeout;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Integer getTimeout() {
return timeout;
}
public void setTimeout(Integer timeout) {
this.timeout = timeout;
}
@Bean
public Student getStudent() {
System.out.println("Azericard url is: " + url);
System.out.println("Azericard timeout is: " + timeout);
return new Student();
}
}
ve ya
package com.amazon.demoapp.config;
import com.amazon.demoapp.controller.Student;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "amazon")
public class BeanConfiguration {
private String url;
private Integer timeout;
@Bean
public Student getStudent() {
System.out.println("Azericard url is: " + url);
System.out.println("Azericard timeout is: " + timeout);
return new Student();
}
}
ve ya
server.port=9595
amazon.url=${AMAZON_URL:https://amazon.com/transfer}
amazon.connection.timeout=${AMAZON_TIMEOUT:10}
package com.amazon.demoapp.config;
import com.amazon.demoapp.controller.Student;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "amazon")
public class BeanConfiguration {
private String url;
private Connection connection;
@Bean
public Student getStudent() {
System.out.println("Azericard url is: " + url);
System.out.println("Azericard timeout is: " + connection.getTimeout());
return new Student();
}
@Data
public static class Connection {
private Integer timeout;
}
}
ve ya
package com.amazon.demoapp.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "amazon")
public class AmazonProperties {
private String url;
private Connection connection;
@Data
public static class Connection {
private Integer timeout;
}
}
ve ya
server:
port: 9595
amazon:
url: ${AMAZON_URL:https://amazon.com/transfer}
connection-timeout: ${AMAZON_TIMEOUT:10}
package com.amazon.demoapp.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "amazon")
public class AmazonProperties {
private String url;
private Integer connectionTimeout;
}
3. Multiple profiles
spring:
profiles:
include:
- common
- amazon
amazon:
url: ${AMAZON_URL:https://amazon.com/transfer}
connection-timeout: ${AMAZON_TIMEOUT:10}
server:
port: 9595
4. @Qualifier annotation
package com.amazon.demoapp.controller;
import com.amazon.demoapp.service.StudentIdGeneratorService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.RestController;
@RestController
//@RequiredArgsConstructor
public class TestController {
private StudentIdGeneratorService service;
public TestController(@Qualifier(value = "randomStudentIdGeneratorService") StudentIdGeneratorService abc) {
service = abc;
String strategy = service.getStrategy();
}
}
Комментарии
Отправить комментарий