Spring依赖注入

package com.atguigu.spring.dao;

public interface UserDao {

    void saveUser();
}
package com.atguigu.spring.dao;

import org.springframework.stereotype.Repository;
/*
添加了主键的类默认在IOC容器中创建的对象的id是类名的首字母小写,我们可以通过该注解的value
属性来指定该id,而且value属性名可以省略不写
 */
//@Repository(value = "userDao")
@Repository("userDao1")
public class UserDaoImpl implements UserDao {
    public void saveUser() {
        System.out.println("UserDaoImpl正在向数据库中插入用户信息!");
    }
}
package com.atguigu.spring.service;

public interface UserService {
    void saveUser();
}
package com.atguigu.spring.service;

import com.atguigu.spring.bean.User;
import com.atguigu.spring.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

@Service("userService")
public class UserServiceImpl implements UserService {

    /*
        依赖注入的步骤:
            1.根据属性的类型实现注入
            2.如果根据属性的类型无法实现注入,则以属性名作为id从IOC容器中寻找,实现注入
            3.我们还可以通过@Qualifier注解的value属性来指定id实现依赖注入,value属性名可以省略不写
     */
    @Qualifier(value = "userDao1")
    @Autowired
    private UserDao userDao;

    /*
    添加了@Autowired注解的属性默认必须注入成功,否则会抛出异常,我们可以通过指定required属性的
    值为false来告诉Spring,如IOC容器中没有对应的对象可以不注入
     */
    @Autowired(required = false)
    private User user;

    public void saveUser() {
        //调用UserDao中的saveUser方法将用户信息插入到数据库中
        userDao.saveUser();
    }
}

 

posted @ 2020-10-01 21:11  勤奋的园  阅读(113)  评论(0编辑  收藏  举报