Spring02

作者: BALE_11 | 来源:发表于2018-11-05 09:50 被阅读0次

    采用注解的方式获取对象

    实例:

    步骤1:在com.hello.dao包下新建一个接口UserDao以及它的实现类UserDaoImpl

    UserDao接口:

    package com.hello.dao;

    public interface UserDao {

            public void login(String name,String pass);

    }

    UserDaoImpl实现类:

    package com.hello.dao;

    import org.springframework.stereotype.Component;

    /*把普通类实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>*/

    @Component("UserDao")    //注解

    public class UserDaoImpl implements UserDao {

    @Override

    public void login(String name, String pass) {

    System.out.println("用户名:"+name+"  密码:"+pass);

    }

    }

    步骤2:在com.hello.service包下新建一个接口UserService以及它的实现类UserServiceImpl

    UserService接口:

    package com.hello.service;

    public interface UserService {

            public void login(String name,String pass);

    }

    UserServiceImpl实现类:

    package com.hello.service;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Component;

    import com.hello.dao.UserDao;

    @Component("UserService")    //注解

    public class UserServiceImpl implements UserService {

    /*@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作*/

    @Autowired    //注解

    private UserDao userDao;

    @Override

    public void login(String name, String pass) {

    userDao.login(name, pass);

    }

    }

    *注意一点:万一UserDao有多个实现了,比如UserDaoImpl1、UserDaoImpl2,

    它们的注解分别为Component("UserDao1") 、Component("UserDao2")

    那么在自动装装配的时候需要用@Qualifier指定是哪个,比如要指定第一个:

    @Autowired 

    @Qualifier("UserDaoImpl1")

    private UserDao userDao;

    步骤3:配置applicationContext.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: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">

            <!-- 注解扫描 ,扫描com.hello下所有类的注解-->

            <context:component-scan base-package="com.hello"/>

    </beans>

    步骤4:接下来就是测试了,具体TestClass类如下:

    package com.hello.test;

    import org.junit.Test;

    import org.junit.runner.RunWith;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.test.context.ContextConfiguration;

    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

    import com.hello.service.UserService;

    /*通过注解加载配置文件*/

    @ContextConfiguration("classpath:applicationContext.xml")

    /*让测试运行于spring测试环境*/

    @RunWith(SpringJUnit4ClassRunner.class)

    public class TestClass {

            @Autowired

            private UserService userService;

            @Test

            public void test(){

                    userService.login("陈赞", "1234");

            }

    }

    测试类中最关键的地方就是下面这两个注解了,一个是通过注解加载配置文件,一个是让测试运行于spring测试环境

    @ContextConfiguration("classpath:applicationContext.xml")

    @RunWith(SpringJUnit4ClassRunner.class)

    相关文章

      网友评论

          本文标题:Spring02

          本文链接:https://www.haomeiwen.com/subject/bqartqtx.html