Explicación de la inversión de control y la inyección de dependencia
Una clase está compuesta por profesores y compañeros de clase, por lo que la clase depende de varios profesores y compañeros de clase. Spring proporciona la función de inyección de dependencia, lo que nos permite gestionar la relación entre varios objetos.
Necesitamos un contenedor para la relación entre los tres objetos de clase, compañeros y profesores. En primavera, cada objeto se llama frijol de primavera (frijol para abreviar), y el contenedor que la primavera maneja estos frijoles se llama contenedor de ioc de primavera
1. Montar en el contenedor a través de @bean
package com.hengrui.entity.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.hengrui.entity.User;
/**
* 生成容器装配bean
* @author Administrator
*
*/
@Configuration
public class AppConfig {
/**
* 将对象装配到bean中,起名user,默认是方法名
* @return
*/
@Bean("user")
public User initUser() {
User user = new User();
user.setId(34);
user.setName("zhang");
user.setNote("note_1");
return user;
}
}
package com.hengrui.entity;
public class User {
private Integer id;
private String name;
private String note;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", note=" + note + "]";
}
}
package com.hengrui;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.hengrui.entity.User;
import com.hengrui.entity.config.AppConfig;
/**
* 读取配置文件
* @author Administrator
*
*/
public class Application {
private static final Logger log = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
User user = context.getBean(User.class);
log.info(user.getId()+"");
}
}