IoC容器装配Bean_基于注解配置方式

第 2 章 IoC容器装配Bean_基于注解配置方式
 2.1
    Bean的定义(注册) -- 扫描机制(用 注解就要用扫描激活     用xml配置要用bean激活 property添加链接 set方法注入 )
          第一步:导入jar包(4个核心包+2个日志包)
                 导入log4j.properties
                 导入applicationContext.xml
    Spring XML开发和注解开发 导入jar包是相同的 

    第二步:编写service 和Dao的注册
        XML做法  :<bean id=”customerService” class=”…” />,用<bean>的方式创建对象
        注解做法  :spring2.5引入 @Component 注解 如果放置到类的上面,相当于在spring容器中定义<bean id=”” class=””>
        /**
         * @Component注解放置到类上
         * 相当于spring容器中定义:<bean id="customerService" class="com.igeek.ioc.CustomerService">
         * 其中id属性默认bean的名字是类名的小写
         * ——————————————————————————————————————————————————————
         * @Component(value="customer")//自定义bean的名字
         * 相当于spring容器中定义:<bean id="customer" class="com.igeek.ioc.CustomerService">
         * ——————————————————————————————————————————————————————
         */
        @Component("customer")
        public class CustomerService{
        }
    第三步: 配置注解开启和注解Bean的扫描
    <context:component-scan base-package="com.igeek.ioc"/>指定扫描哪个路径
    实际开发中,使用的是@Component三个衍生注解(“子注解”)
        子注解的作用 :有分层的意义(分层注解)    
      @Service用于标注业务层组件、(如Service层)
      @Controller用于标注控制层组件(如struts中的action层)
      @Repository用于标注数据访问组件,(如DAO层组件)。


  Bean属性的依赖注入
    复杂类型数据依赖注入:
        注解实现属性依赖注入,将注解加在setXxx方法上 或者 属性定义上 !
            /*
     * DI - 依赖注入
     * 直接定义关联依赖对象属性
     * 
     * @AutoWired    按照类型注入
     * @Resource     先按照名称注入,如果没找到,则按照类型注入
     * 
     * @vale(SpEL) ----不用
     *
     */
      注释里面标明初始化和销毁:
    (1)当bean被载入到容器的时候调用setup ,
    注解方式如下:?
    @PostConstruct 
    初始化
    (2)当bean从容器中删除的时候调用teardown(scope= singleton有效)
    注解方式如下:
    @PreDestroy  
    销毁
  日志:
    //在类里面加日志  首先实例化工具
    Logger logger = Logger.getLogger(UserServiceImpl.class);
    public void login() {
            System.out.println("---ServiceImpl.login---");
            logger.debug("-----debug开始---");//在stdout    的不过模式下可看到
            useDao.login();
            logger.debug("---debug结束----");
        }
    设置日志信息:在log4j里面设置
    #choose stdout or file 

猜你喜欢

转载自blog.csdn.net/qq_36737214/article/details/82467180