Spring IOC注解的详解

一.Component组件

修饰一个类,将这个类交给spring管理

这个类有三个衍生注解(功能类似),修饰类

@Controller:修饰web层

@Service:修饰service层

@Dao:修饰dao层

 

二.属性注入的注解

1.普通属性

@value

2,对象属性

(1)@Autowired:设置对象类型的属性的值,是按照类型进行属性注入的

我们习惯按照名字进行属性注入

所以一般是Autowired和Qualifier一起完成按照名称属性注入

 

(2)@Resource  按照名称进行属性注入

 

注解步骤:

1.在spring.xml中配置扫描组件

<!--使用spring IOC注解开发,配置组件扫描(哪些包下的类使用IOC注解)-->
    <context:component-scan base-package="org.qingyu.dao"></context:component-scan>
   
   

2.编写dao层

public interface HaohanDao {
    void add();
}
@Repository("HaohanDao")
//相当于在spring.xml中<bean id="HaohanDao" class="org.qingyu.dao.HaohanImpl"></bean>
public class HaohanImpl implements HaohanDao {

    @Value("张三")
    private String name;

    @Override
    public void add() {
        System.out.println("添加..."+name);
    }
}

3.编写service层

public interface HaohanService {
    void add();
}

 

这里的@Resource是属性注入 

@Service("HaohanService")
public class HaohanServiceImpl implements HaohanService {

   @Resource
    private HaohanDao haohanDao;

    @Override
    public void add() {
        System.out.println("service...");
        haohanDao.add();
    }
}

4.测试

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
        HaohanDao haohanDao = (HaohanDao) applicationContext.getBean("HaohanDao");
        haohanDao.add();

 

三.Bean的其他注解

1.Bean 的生命周期的注解

      PostConstruct:初始化注解

      PreDestroy:销毁方法

 

2.Bean的作用范围注解

@Scope

    Singleton

    Prototype

    Request

    Session

   Globlsession

 

四.IOC注解和XML开发比较

1.XML和注解比较

XML可以适用于任何场景,结构清晰,方便维护

注解,当类不是自己提供的时候不能使用

 

 

2.XML和注解的整合开发

类都在XML里写,属性注入用注解写

扫描是为了扫描类上的注解,当类上没有注解时就不扫描,使用属性注入的注解

 

<context:annotation-config/>
  <bean id="UserDao" class="org.qingyu.dao.UserDao"></bean>
  <bean id="UserService" class="org.qingyu.service.UserService"></bean>
public class UserDao {
    public void add(){
        System.out.println("userDao...");
    }
}
public class UserService {
    @Resource
    private UserDao userDao;
    public  void add(){
        System.out.println("userService...");
        userDao.add();
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值