Spring框架中常见的注解浅谈

Spring常用注解浅谈


我先列举一些Spring中的常见注解:@Autowired @Resource @Qualifier @Service @Component @Controller @Repository @RequestMapping 等等。

1、@Autowired @Qualifier 与 @Resource

用法:标注在成员变量上,或者set方法上。@Autowired 与 @Resource 都是用于bean自动装配的。(确切的说@Resource是jdk自带的注解);

区别:@Autowired装配默认是通过类型去查找,也可以通过@Qualifier指定名称查找。而@Resource 默认按照名称进行查找,当然也可指定类型、指定名称或者同时指定。指定类型的时候如果找不到或者找到多个都会抛出异常。同时指定类型和名称的时候,会去找唯一匹配的bean,如果找到多个抛出异常。

:见示例代码一。

示例代码一:

/*
*接口
*/
public interface PersonService{
    public void eat();
    public void play();
}

/*
*接口实现类
*/
@Service("personService")
public class PersonServiceImpl implements PersonService{
    
    @Override
    public void eat(){  
         System.out.println("eat"); 
    }

    @Override
    public void play(){
        System.out.println("play"); 
    }
}

/*
*调用类
*/

public class Demo{
    @Resource
    private PersonService personService;

    @Autowired
    private PersonService personService2;
    
    @Autowired
    @Qualifier("personService")
    private PersonService personService3;
    
    public void test(){
        personService.eat();
        personService2.eat();
    }
}

2、@Service @Component @Controller @Repository

用法:都是标注在类名上,用于注册一个bean到Spring上下文中。

区别:@Service 用于服务层;@Controller用于控制层;@Repository用于DAO层;不确定的用@Component

例:见示例代码一(同Service的用法)

3、@RequestMapping @RequestParam

用法:@RequestMapping标注在控制层类上面映射一个请求路径;@RequestParam 映射一个请求参数;

:见示例代码二

示例代码二:

/*
*控制层类
*/
@Controller
@RequestMapping("/register")
public class RegisterUser{
    
    public void register(@RequestParam("ownerId") int ownerId){
        //dosomething
    }
}

 

你可能感兴趣的:(spring)