<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- UserService 빈 등록 및 의존성 주입 -->
<bean id="userService" class="com.example.UserService">
<property name="userRepository" ref="userRepository"/>
</bean>
<!-- UserRepository 빈 등록 -->
<bean id="userRepository" class="com.example.UserRepository"/>
</beans>
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("xml의 경로");
}
}
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserService(userRepository());
}
@Bean
public UserRepository userRepository() {
return new UserRepository();
}
}
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
}
}
@Configuration
@PropertySource("classpath:application.properties")
public class EnvironmentConfig {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("db.driver"));
dataSource.setUrl(env.getProperty("db.url"));
dataSource.setUsername(env.getProperty("db.username"));
dataSource.setPassword(env.getProperty("db.password"));
return dataSource;
}
}
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/mydatabase
db.username=myuser
db.password=mypassword
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(EnvironmentConfig.class);
}
}
@Configuration
public class AppConfig {
@Bean
@Profile("dev")
public UserService userService() {
return new UserService();
}
@Bean
@Profile("test")
public UserService userService()) {
return new UserService();
}
}
@SpringBootTest
@ActiveProfiles("dev")
public class MyApplicationTests {
...
}
@Component
public class MyComponent {
@Value("${my.property}")
private String myProperty;
}
@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {
...
}
intelij community edition에서 자동으로 application 파일을 인식 못할 경우 도움이 됨
@Component
@ConfigurationProperties(prefix = "my")
public class MyProperties {
private String property1;
private int property2;
}
my:
property1: "value1"
property2: 42