zoukankan      html  css  js  c++  java
  • Spring的IOC注解开发入门2

    注解方式设置属性的值

    在我们IOC基于xml属性注入的方式中有(一般推荐set方法)

      构造方法注入普通值:<constructor-arg>的使用

      set方法注入普通值:<property>的使用   注入对象值:ref的使用

      SPEL方式注入普通值与对象值 #{SPEL}

      P名称空间方式注入普通值与对象值

    在我们IOC基于注解方式开发中

    • 普通属性:Value
    • 对象属性:AutoWired :设置对象类型的属性的值,按照类型注入。习惯是按照名称完成属性注入,那么和以下注解配合使用@Qualifier(value="userDao2222")
    • 实际开发中:@Resource : 完成对象类型的属性注入,按照名称注入

      可以没有set方法,如果没有提供set方法,就把注解加在属性上,否则就set方法上

    package spring.day2.demo1;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component("userDao") // 相当于<bean id="userDao" class="spring.day2.demo1.UserDaoImp1">
    public class UserDaoImp1 implements UserDao {
        //@Value("张三")
        private String name;
        
        @Value("李四")
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public void save() {
            System.out.println("userdao的save方法已经执行......."+name);
        }
    
    }

    注解详解

    @Component:组件,目前与其衍生注解是一样的,推荐使用衍生注解,使其结构更加清晰。

      修饰一个类,将这个类交给spring管理,其衍生注解如下:

      @Controller:web层

      @Service:service层

      @Repository:dao层

    属性注入的注解

     普通属性:@Value()

     对象属性:@Autowired设置对象类型的属性的值,按照类型注入。习惯是按照名称来进行注入,所以与@Qualifier(value="userDao2222")一起使用完成按名称注入

     实际开发中:使用@Resource(name="")来完成按名称注入对象类型,但是@Resource(name="")不是Spring框架下的,是实现javax.annotation.Resource的规范

    Bean的生命周期注解(了解)

      @PostConstruct 初始化   相当于xml中的init-method

      @PreDestroy     销毁  相当于xml中的destroy-method

    Bean的作用范围注解

      @Scope("") 

      双引号里面可以填

    • singleton  单例
    • prototype  多例
    • request
    • session
    • globalsession

      

     

  • 相关阅读:
    第三次jsp作业
    快速排列 使用链表
    Cross
    题目
    ranch
    robot
    Mold
    Mold2
    OX_pattern
    KSC sort
  • 原文地址:https://www.cnblogs.com/zengcongcong/p/10359074.html
Copyright © 2011-2022 走看看