zoukankan      html  css  js  c++  java
  • spring注解开发

    Spring的bean管理(注解)

      注解介绍

        1 代码里面特殊标记,使用注解可以完成功能

     

        2 注解写法 @注解名称(属性名称=属性值)

     

        3 注解使用在类上面,方法上面 和 属性上面

      Spring注解开发准备

        1 导入jar包

          (1)导入基本的jar包

            

          (2)导入aop的jar包

            

        2 创建类,创建方法

        3 创建spring配置文件,引入约束

        (1)第一天做ioc基本功能,引入约束beans

        (2)做spring的ioc注解开发,引入新的约束

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns="http://www.springframework.org/schema/beans"
           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
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">

        4 开启注解扫描:一般使用上面的扫描方式

        <!-- 开启注解扫描 
            (1)到包里面扫描类、方法、属性上面是否有注解
        -->
        <context:component-scan base-package="cn.itcast"></context:component-scan>
        
        <!-- 
            扫描属性上面的注解
         -->
        <!-- <context:annotation-config></context:annotation-config> -->

      注解创建对象

        1 在创建对象的类上面使用注解实现

    @Component(value="user")
    public class User {
    
        public void add() {
            System.out.println("User......");
        }
    }
    public class TestAnno {
    
        @Test
        void testName() throws Exception {
            ApplicationContext context = 
                    new ClassPathXmlApplicationContext("bean1.xml");
            User user = (User) context.getBean("user");
            user.add();
        }
    }

        

        2 创建对象有四个注解

            

        (1)@Component

        (2)@Controller

        (3)@Service

        (4)@Repository

          目前这四个注解功能是一样的,都创建对象

        3 创建对象单实例还是多实例

    @Service(value="user")
    @Scope(value="prototype")
    public class User {
    
        public void add() {
            System.out.println("User......");
        }
    }

      注解注入属性

        1 创建service类,创建dao类,在service得到dao对象

          注入属性第一个注解 @Autowired

          (1)创建dao和service对象

    @Component(value="userDao")
    public class UserDao {
    
        public void add() {
            System.out.println("dao.........");
        }
    }
    @Service(value="userService")
    public class UserService {
    
        //得到dao对象
        //1 定义dao类型属性
        //在dao属性上面使用注解 完成对象注入
        @Autowired
        private UserDao userDao;
        // 使用注解方式时候不需要set方法
        
        public void add() {
            System.out.println("service...........");
            userDao.add();
        }
    }

          注入属性第二个注解 @Resource

    @Service(value="userService")
    public class UserService {
    
        // name属性值 写 注解创建dao对象 value值
        @Resource(name="userDao")
        private UserDao userDao;
        
        public void add() {
            System.out.println("service...........");
            userDao.add();
        }
    }

    配置文件和注解混合使用

      1 创建对象操作使用配置文件方式实现

        <!-- 配置对象 -->
        <bean id="bookService" class="cn.itcast.xmlanno.BookService"></bean>
        <bean id="bookDao" class="cn.itcast.xmlanno.BookDao"></bean>
        <bean id="ordersDao" class="cn.itcast.xmlanno.OrdersDao"></bean>

      2 注入属性的操作使用注解方式实现

        //得到bookdao和ordersdao对象
        @Resource(name="bookDao")
        private BookDao bookDao;
        
        @Resource(name="ordersDao")
        private OrdersDao ordersDao;

     

  • 相关阅读:
    存储过程为参数NULL时的处理方法
    查询数据占比
    ROW_NUMBER() OVER()函数用法;(分组,排序),partition by
    存储过程 set 和 select 对变量赋值的区别 (转自Theo)
    对布尔值取反,使用 ~
    创建存储过程
    JavaScript验证密码强度
    一些简单的JavaScript的方法
    递归方式实现树的展示形式
    ASP.NET验证控件详解
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10122414.html
Copyright © 2011-2022 走看看