zoukankan      html  css  js  c++  java
  • spring 注解(annotation)简单的配置

    1:注解方式来进行spring中的bean配置十分的方便,可以极大的简化applicationContext.xml中的代码行数

        但是可能带来后期维护和性能相对于xml配置比较差

    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: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">
        //注解扫描  bese-package 基于某个包下
        <context:component-scan base-package="com.yuwenhui.annotation">
    
        </context:component-scan>

    3:数据访问层(dao、repository)的实现类代码

      不需要在接口上写注释

      

    @Repository("userRepository")
    public class UserRepositoryImpl implements IUserRepository {
        @Override
        public void saveUser() {
            System.out.println("User Repository ");
        }
    }

    4:业务逻辑层(service)的实现类代码

      

    @Service("userService")
    public class UserServiceImpl implements IUserService {
        @Resource(name = "userRepository")
        private IUserRepository userRepository;
        @Override
        public void saveUser() {
            System.out.println("User Service");
            userRepository.saveUser();
        }
    
        public IUserRepository getUserRepository() {
            return userRepository;
        }
    
        public void setUserRepository(IUserRepository userRepository) {
            this.userRepository = userRepository;
        }
    }

    5:控制层(Controller)层的代码

      

    @Controller("userController")
    public class UserController {
    @Resource(name = "userService")
    private IUserService userService;
    @Value(value = "余文辉")
    private String name;
    public void saveUser(){
    System.out.println("User Controller");
    userService.saveUser();
    }

    public IUserService getUserService() {
    return userService;
    }

    public void setUserService(IUserService userService) {
    this.userService = userService;
    }
    public void sayName(){
    System.out.println("我的名字:"+this.name);
    }
    }

    6:注意点

      @Resource 通过名称进行装配,名称可以通过name进行指定(该注释属于J2EE,不属于spring内的,是在  javax.annotation包下)

      @Autowired 默认通过类型进行指定,当类型存在多个时,通过将类名的首字母小写,来进行name装配,如果不存在则报错

      @Qualifier 通过name进行装配,语法为:

          @Qualifier("name")

      一般和Autowired进行联合使用

  • 相关阅读:
    CSS之边界塌陷
    不用for loop循环一个读取一个文件
    CSS之毗邻选择器与普通兄弟选择器的区别
    python 一行代码
    Regex Golf 练习记录
    c实现双向链表
    c实现单向链表
    c++实现 String 类
    js获取指定小时日期格式化
    git clone Timed out 解决
  • 原文地址:https://www.cnblogs.com/yuwenhui/p/7510388.html
Copyright © 2011-2022 走看看