SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(二)

②. Spring原始注解开发


  • ①. Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。


  • ②. Spring原始注解主要是替代<Bean>的配置


SRPING02_配置数据源、原始注解开发、新注解开发、集成Junit代码实现(二)


③. 注意事项(使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法)


    <!--注解的组件扫描-->
    <context:component-scan base-package="com.xiaozhi"></context:component-scan>


④. 代码演示


    //@Component("userDao") 相当于:
    <bean id="userDao" class="com.xiaozhi.UserDaoImpl"/>
    使用@Compont或@Repository标识UserDaoImpl需要Spring进行实例化
    //@Component("userDao")
    @Repository("userDao")
    public class UserDaoImpl implements UserDao {
        @Override
        public void save() {
            System.out.println("save running... ...");
        }
    }
    //使用@Compont或@Service标识UserServiceImpl需要Spring进行实例化
    //使用@Autowired或者@Autowired+@Qulifier或者@Resource进行userDao的注入
    //@Component("userService")
    @Service("userService")
    public class UserServiceImpl implements UserService {
        /*@Autowired
        @Qualifier("userDao")*/
        @Resource(name="userDao")
        private UserDao userDao;
        @Override
        public void save() {       
          userDao.save();
        }
    }


    //使用@Value进行字符串的注入
    @Repository("userDao")
    public class UserDaoImpl implements UserDao {
        @Value("注入普通数据")
        private String str;
        @Value("${jdbc.driver}")
        private String driver;
        @Override
        public void save() {
            System.out.println(str);
            System.out.println(driver);
            System.out.println("save running... ...");
        }
    }


    //使用@Scope标注Bean的范围
    //@Scope("prototype")
    @Scope("singleton")
    public class UserDaoImpl implements UserDao {
       //此处省略代码
    }


    //使用@PostConstruct标注初始化方法,使用@PreDestroy标注销毁方法
    @PostConstruct
    public void init(){
        System.out.println("初始化方法....");
    }
    @PreDestroy
    public void destroy(){
        System.out.println("销毁方法.....");
    }


上一篇:SVN莫名出错,网上找遍无果,递归删除当前目录下所有.svn文件名


下一篇:K8S从懵圈到熟练 – 集群伸缩原理