spring常用注解

package com.itheima.service.impl;

import com.itheima.dao.IAccountDao;
import com.itheima.dao.impl.AccountDaoImpl;
import com.itheima.service.IAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;

/**
* @Author: lijiahao
* @Description: 帐户的业务层实现类
* 曾经xml的配置:
* * scope="" init-method="" destory-method="" >
*
*

* 用于创建对象的
* 他们的作用=在xml配置文件中编写一个标签实现的功能一样
* @Component
* 作用:把当前类对象存入spring容器中
* 属性:value:用于指定bean的id,我们不写时,默认为类名首字母变小写
* 自定义要求getBean和@Component(value="")一致
* @Controller: 一般用在表现层
* @Service: 一般用在业务层
* @Repository: 一般用在持久层
* 以上三个注解作用和属性同component一样
* 这三个时spring框架为我们提供的明确的三层使用的注解
* 用于注入数据的
* 作用=bean标签中写property标签一样
* @Autowried:
* 作用:自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功
* 出现位置:变量或者方法上
* 在IOC容器中先找key再找value
* 细节:在使用注解注入时,set方法就不是必须的了
* @Qualifier:
* 作用:在按照类注入的基础上在按照名称注入,给类成员注入式不能单独使用,但是在给方法参数注入时可以
* 属性:value:用于指定注入bean的id
* @Resource
* 作用:直接按照bean的id注入,他可以独立使用
* 属性:name:用于指定bean的id
* 以上三个注解只能注入其他bean类型的数据,基本类型和String类型的无法使用上述注解
* 另外集合类型的注入只能通过xml的方式实现
*
*
* @Value
* 作用:用于注入基本类型和String类型的数据
* 属性:
* value:用于指定数据的值,它可以使用spring中spel(spring的el表达式)
* SpEL的写法:${表达式}
* 用于改变作用范围的
* 作用=bean中写scope标签
* @Scope
* 作用:用于指定bean的作用范围
* 属性:
* value:指定范围的取值,常取singleton prototype
* 和生命周期相关的
* 作用=bean中使用init-method和destory-method标签
*/
@Service(value="accountService")
//@Scope(value = "prototype")
public class AccountServiceImpl implements IAccountService {

/* @Autowired
@Qualifier("accountDao1")*/
@Resource(name="accountDao2")
private IAccountDao accountDao = null ;

public AccountServiceImpl() {
System.out.println("对象创建了。。。。");
}

public void saveAccount() {
accountDao.saveAccount();
}

@PostConstruct
public void init() {
System.out.println("初始化了。。。");
}

@PreDestroy
public void destory() {
System.out.println("销毁了。。。");
}
}

你可能感兴趣的:(spring常用注解)