基于注解的IOC配置

什么是IOC注解

        学习基于注解的IOC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。

常用注解

添加pom.xml依赖


        
            org.springframework
            spring-context
            5.1.8.RELEASE
        
    

 resources配置文件applicationContext.xml



    
   

用于创建对象的

@Controller
  • 作用:

    把资源交给spring来管理,相当于:;一般用于表现层。

  • 属性:

    value:指定bean的id;如果不指定value属性,默认bean的id是当前类的类名,首字母小写;

@Service
  • 作用:

    把资源交给spring来管理,相当于:;一般用于业务层。

  • 属性:

    value:指定bean的id;如果不指定value属性,默认bean的id是当前类的类名,首字母小写;

案例

//@Service("userServiceImpl")//Map
@Service//默认使用实现类类名首字母小写
public class UserServiceImpl implements UserService {
            ... ...
}
@Repository
  • 作用:

    把资源交给spring来管理,相当于:;一般用于持久层。

  • 属性:

    value:指定bean的id;如果不指定value属性,默认bean的id是当前类的类名,首字母小写;

//@Repository("userServiceImpl")//Map
@Repository//默认使用实现类类名首字母小写
public class UserDaoImpl implements UserDao {
        ... ....
}
@ Component
  • 作用:

    把资源交给spring来管理,相当于:;通用。

  • 属性:

    value:指定bean的id;如果不指定value属性,默认bean的id是当前类的类名,首字母小写;

@Scope
  • 作用:

    指定bean的作用域范围。

  • 属性:

    value:指定范围的值,singleton prototype request session。

用于属性注入的

@Autowired
  • 作用:

    自动按照类型注入。set方法可以省略。

  • 案例:

@Service
public class UserServiceImpl implements UserService {

    @Autowired //注入类型为UserDAO的bean
    private UserDao userDao;

    public void addUser(){
        userDao.addUser();
    }
}
@Resource
  • 作用:

    自动按照名字注入。set方法可以省略。

  • 属性:

name:指定bean的id。

  • 案例:

@Service
public class UserServiceImpl implements UserService {

    @Resource(name="userDaoImpl")//注入id=“userDaoImpl”的bean
    private UserDao userDao;

    public void addUser(){
        userDao.addUser();
    }
}
@Value
  • 作用:

    注入基本数据类型和String类型数据的

  • 属性:

value:用于指定值

@Value案例一

@Service
public class UserServiceImpl implements UserService {

    @Resource(name="userDaoImpl") //注入id=“userDaoImpl”的bean
    private UserDao userDao;
    @Value("张三")//注入String
    private String name;
    @Value("18")//注入Integer
    private Integer age;

    public void addUser(){
        System.out.println(name+","+age);
        userDao.addUser();
    }
}

@Value案例二

创建config.properties

name=张三
age=18

 resources配置文件applicationContext.xml



    
    

    

注入属性值

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;
    @Value("${name}")//注入String
    private String name;
    @Value("${age}")//注入Integer
    private Integer age;

    public void addUser() {
        System.out.println(name+","+age);
        userDao.addUser();
    }
}

你可能感兴趣的:(java,开发语言)