直接在类上添加@Component注解也可以创建bean,Configuration、Controller、Service、Repository直接继承了Component,只是在应用中语义不同,其他一样。比如Configuration作为创建bean的配置类使用,在其中的方法中用@Bean来创建bean,Controller在应用层,Service和Repository分别在服务层和数据库层
User.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.edu.spring; import org.springframework.stereotype.Component; @Component public class User { }
App.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.edu.spring; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class App { public static void main( String[] args ) { AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(User.class); System.out.println(context.getBean(User.class)); context.close(); } }
运行结果如下:
可以给Component添加属性,指定bean的名字
User.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.edu.spring; import org.springframework.stereotype.Component; @Component("myUser") public class User { }
App.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.edu.spring; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class App { public static void main( String[] args ) { AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(User.class); System.out.println(context.getBean("myUser")); context.close(); } }
运行结果如下: