Spring -- 全注解下的IoC(1)
Spring IoC容器
1. Spring IoC 容器简介
- Spring Bean :Spring中每一个需要管理的对象称为Spring Bean(简称 Bean)。
- Spring IoC容器:管理Bean 的容器。
- 1. 通过描述管理Bean, 包括发布和获取Bean。
- 2. 通过描述完成Bean之间的依赖关系。
2. 通过@Componet 自动的装配你的Bean
2.1 编写一个简单的User类
package com.examole.demo2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/* @Component 标识这个类将Spring IoC容器扫描装配,user作为Bean的名字注入到IoC中*/
/* 如果不给括号里的name IoC容器会把类名首字母小写其它不变注作为名称注入IoC容器中 */
@Component("user")
public class User {
/* @value给下面字段注入值 */
@Value("1")
private Long id;
@Value("user_name_1")
private String user_name;
@Value("note_1")
private String note;
/** Geter And Seter Here**/
}
2.2 编写一个 AppConfig 配置类
@Configuration 注解会辨识这是一个配置类
@ComponentScan 注解会去扫描某一个包下,所有标识有@Component 的类, 创建他们的对象存入Spring IoC容器中
package com.examole.demo2; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Service; @Configuration /* 当我们不给@ComponentScan中标识指定的包时,他会扫描它自所在的包 使用excludeFilters = {@ComponentScan.Filter(classes = {Service.class})} 可以在扫描某一个包时,越过一些特殊的类(如使用@Service 注解的类)*/ @ComponentScan(basePackages = {"com.examole.demo2"},excludeFilters = {@ComponentScan.Filter(classes = {Service.class})}) //@ComponentScan("com.examole.demo2.*") 扫描指定包下所有的文件 //@ComponentScan(backPackagesClasses = {User.class}) 扫描指定的类 public class AppConfig { }
UserService类
package com.examole.demo2; import org.springframework.stereotype.Service; @Service public class UserService { public void printUser(User user){ System.out.println(user.getId()); System.out.println(user.getUser_name()); System.out.println(user.getNote()); } }
2.3 验证
package com.examole.demo2; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(User.class); User user = applicationContext.getBean(User.class); UserService service = new UserService(); service.printUser(user); } }
结果


浙公网安备 33010602011771号