• Spring


    1. 介绍

    之前我们写的bean都是基于xml配置,而这文章是基于java 注解去实现创建bean,首先我们需要在之前的xml当中添加两个dtd

    xmlns:context 和 xsi:schemaLocation

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

    2.配置

    只要对你需要添加注解创建bean的包进行扫描就可以了

    <context:component-scan> 其中属性,base-package就写需要扫描的包全限路径即可

    <?xml version="1.0" encoding="UTF-8" ?>
    <beans   xmlns="http://www.springframework.org/schema/beans" 
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans 
             http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
             http://www.springframework.org/schema/context
             http://www.springframework.org/schema/context/spring-context.xsd">
            
        <context:component-scan base-package="com.test.spring.annotation"></context:component-scan>    
         
    </beans>

    3.注解讲解

    • 创建基本bean: @Component, 以下三种类型跟Component一样,只是叫法不一样而已
      • @Service
      • @Controller
      • @Repository

      注入:三种不同的注入方式
      • @Autowired:以类型注入,意思就注入相同类型的实现类,这会有缺点,就会当有多个实现了相同接口的对象,就不知道注入谁了

      • @Autowired+@Qualifier: 就是制定那个实现bean注入

      • @Resource: 已名称注入

      • 第四种是可以在setter方法上使用以上三种注解

    • 设普通值:@Value

    完整类

    @Component("userService")
    public class UserServiceImpl implements UserService{
    
        /**
         * 第一种方式 注入
         */
        @Autowired
        private UserDao userDao_1;
        
        /**
         * 第二种方式 注入
         */
        @Autowired
        @Qualifier("userDao")
        private UserDao userDao_2;
        
        /**
         * 第三种方式 注入
         */
        @Resource("userDao")
        private UserDao userDao_3;
        
        
        private UserDao userDao_4;
        
        /**
         * 第四种方式 注入
         */
        @Autowired
        @Qualifier("userDao")
        public void setUserDao_4(UserDao userDao_4) {
            this.userDao_4 = userDao_4;
        }
        
        /**
         * 基本类型
         */
        @Value("Peter")
        public String name;
        
        public void addUser() {
            userDao_1.saveUser();
            
            userDao_2.saveUser();
            
            userDao_3.saveUser();
            
            userDao_4.saveUser();
        }
    
        public String toString() {
            return name;
        }
    }

     

  • 相关阅读:
    分页小算法
    幻影粒子游戏开发
    X文件的导出系列1——静态模型
    JavaScript 强行弹出窗口 与 无提示关闭页面
    SqlHelper中使用事务
    一个不错的WEB打印解决方案!
    【转载】3层架构应用AspNetPager分页 GridView分页
    c#操作在word指定书签插入文字
    多数据库事务处理[改写]
    rdlc报表使用技巧一(转)
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/10879742.html
Copyright © 2020-2023  润新知