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);
    }
}

  

  结果

 

posted @ 2018-12-06 16:02  Weeeeew  阅读(273)  评论(0编辑  收藏  举报