。로말하겠다。 써라。 이스만스프링스는지돌아다고다좋다。
在EJB中进行下载。 。리고이션기반은불러와줬다。
자,이제알아보자。 어노테이션의차이를!
@Component
。스클래이생성하는이다。 물론@Scope(“ Prototype”)。이션을싱글톤이있다。 또한@服务,@资料库。이션이에다。
이어노테이션은De(声明性)인다이션이다。 즉,패키지스안에이어노테이션은“이클래스클래정의했으니로의했으니。” 。이된다。
이어노테이션은리도록기쓰이상다。
@Bean
이녀석은로@组态들어간이을이들어간Spring을정하는스내에가는다。 만약이를@零件로따지면,스프링은스캔할지를@零件。이션을이렇게이등록하는다。
@Component
public class MyBean {
// ...
}
// 스프링 내부 처리를 이해하기 쉽게 표현하면?
@Bean
public MyBean myBean() {
return new MyBean();
}
。가인자다면이그지확인다넣는다。 。스프링은끝내버린다。
자,그럼이녀석의이유는?
XML格式的XML,3.0版本的价格。 버전인5.2 5.2 XML설정은지원한다。 XML으로설정할장점이라면? ,로넣었다뺐다,클래스설정이가설다는이점이다。 그냥XML끝이다。 정말다。 。리주석처다。 어자피XML이어자피스나정수정수지가지다。 캔할스캔할이빈이빠르게이빠르게다。 XML설정을이이때문에XML설정을가려지않는이다。 스을정을스기반에서는@豆능하게이션이작업을능하게가해준다。 들면,
// prop 정의 안하면 빈 문자열로. null 받으면 switch 문에서 NullPointerException 발생함
@Value("${my.prop.animal:}")
private String animal;
@Bean
public Animal animal() {
switch(animal) {
case "dog": return new Dog();
case "cat": return new Cat();
case "cow": return new Cow();
default: throw new InvalidStateException("동물 정의하고 다시 실행할 것!");
}
}
런식으식으퍼티여에에스스스스가가가가가가가가가가가가가가가가가 또한,@零件어노테이션기넣사타이라리클래스를스빈에@豆。이션을있있있다。
정리
일반적인당신의빈등록은간편하게@零件,이션으로,등록이빈다면@组态어노테이션이들어간스클래스내@豆어노테이션선언으로! Spring,春季靴의@SpringBootApplication프링이션이들어간스프링@豆말자이션이등록이능하이잊지잊지말자。