当前位置: 首页 > 图灵资讯 > 技术篇> Spring6.0从入门到精通-HelloWorld之基本使用

Spring6.0从入门到精通-HelloWorld之基本使用

来源:图灵教育
时间:2024-01-14 13:22:10
 

HelloWorld之基本使用

public class Main {
    public static void main(string[] args) {

        // 创建Spring容器
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();

        // 向容器中注册一个bean
        applicationContext.registerBean("userService", UserService.class);

        // 启动Spring容器
        applicationContext.refresh();

        // 获取Bean对象
        UserService userService = (UserService) applicationContext.getBean("userService");

        // 使用Bean对象
        userService.test();
    }
}

 

以上代码完成了向Spring容器中注册一个Bean对象,并把它拿出来使用。

 

假设现在UserService用到了OrderService,我们可以这么写:

public class UserService {

    @Autowired
    private OrderService orderService;

    public void test(){
        System.out.println(orderService);
    }
}

 

并且把OrderService也注册为Bean:

AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.registerBean("userService", UserService.class);
applicationContext.registerBean("orderService", OrderService.class);
applicationContext.refresh();

 

这样UserService中的orderService属性就自动有值了,这个功能就是Spring给我们提供的,叫做依赖注入。

 

假如现在UserService中有一个Map,需要缓存一部分用户信息,我们可以通过一下方式来进行初始化:

public class UserService implements InitializingBean {

    @Autowired
    private OrderService orderService;

    private Map<String, User> vipUserInfo = new HashMap<>();

    @Override
    public void afterPropertiesSet() throws Exception {
        vipUserInfo.put("001", new User());
        vipUserInfo.put("002", new User());
        vipUserInfo.put("003", new User());
    }

    public void test(){
        System.out.println(orderService);
        System.out.println(vipUserInfo.size());
    }
}

 

Spring容器在创建UserService这个Bean对象时会自动调用afterPropertiesSet()方法,然后完成对vipUserInfo的初始化。