java学习笔记整理JavaEE 学习专题Java学习笔记

Spring--IOC容器——对象依赖关系(注解)

2017-06-25  本文已影响113人  Mr_欢先生

注解方式可以简化spring的IOC容器的配置!

使用注解步骤:

总结:
1) 使用注解,可以简化配置,且可以把对象加入IOC容器,及处理依赖关系(DI)
2) 注解可以和XML配置一起使用。

方法一

注解:

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd " >

<!--开启注解扫描-->
    <context:component-scan base-package="com.huan"></context:component-scan>

</beans>

UserDao.java

package com.huan.BeanTest;

import org.springframework.stereotype.Component;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component("userDao") //相当于 bean.xml[<bean id =userDao class="com.huan.BeanTest.UserDao">]
public class UserDao {
    public void save(){
        System.out.println("db:操作数据库");
    }
}

UserService.java

package com.huan.BeanTest;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component("userService")//userService对象,注入到ioc容器
public class UserService {
    //从IOC容器中找到userDao对象,注入到当前字段
    /**
     * <bean id =userDao class="com.huan.BeanTest.UserDao">
     *  <property name = "userDao" ref ="userDao" ></property> 相当于 @Resource(name = "userDao")
     *
     *  </bean>
     */
    @Resource(name = "userDao")
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    public void save(){
        userDao.save();
    }
}

UserAction.java

package com.huan.BeanTest;

import org.springframework.stereotype.Component;


import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component("userAction")
public class UserAction {
    @Resource(name = "userService")
    private UserService userService;
    public void execute(){
        userService.save();
    }
}


创建user对象

 @Test
    public void test2(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        UserAction userAction = (UserAction) applicationContext.getBean("userAction");
        userAction.execute();
方法二

注解:

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd " >

<!--开启注解扫描-->
    <context:component-scan base-package="com.huan"></context:component-scan>

</beans>

UserDao.java

package com.huan.BeanTest;

import org.springframework.stereotype.Component;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component
public class UserDao {
    public void save(){
        System.out.println("db:操作数据库zui");
    }
}


UserService.java


package com.huan.BeanTest;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component
public class UserService {
    
    @Resource//根据类型查找·[在容器中,该类型只有一个变量]
    private UserDao userDao;
    public void save(){
        userDao.save();
    }
}

UserAction.java

package com.huan.BeanTest;

import org.springframework.stereotype.Component;


import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Component
public class UserAction {
    @Resource
    private UserService userService;
    public void execute(){
        userService.save();
    }
}

创建user对象

 @Test
    public void test2(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        UserAction userAction = (UserAction) applicationContext.getBean("userAction");
        userAction.execute();
方法三

注解:

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd " >

<!--开启注解扫描-->
    <context:component-scan base-package="com.huan"></context:component-scan>

</beans>

UserDao.java

package com.huan.BeanTest;

import org.springframework.stereotype.Repository;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Repository
public class UserDao {
    public void save(){
        System.out.println("db:操作数据库zui");
    }
}



UserService.java


package com.huan.BeanTest;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Service
public class UserService {

    @Resource
    private UserDao userDa;
    public void save(){
        userDa.save();
    }
}

UserAction.java

package com.huan.BeanTest;

import org.springframework.stereotype.Controller;

import javax.annotation.Resource;

/**
 * Created by 马欢欢 on 2017/6/24.
 */
@Controller
public class UserAction {
    @Resource
    private UserService userService;
    public void execute(){
        userService.save();
    }
}

创建user对象

 @Test
    public void test2(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        UserAction userAction = (UserAction) applicationContext.getBean("userAction");
        userAction.execute();
image.png

上一篇:Spring--IOC容器——对象依赖关系(构造函数、set方法、p名称空间、自动装配)

文集:Spring框架学习

上一篇 下一篇

猜你喜欢

热点阅读