Spring的bean管理(注解)

一.注解介绍

  • 代码里面特殊标记,使用注解可以完成功能
  • 注解写法 @注解名称(属性名称=属性值)
  • 注解使用在类上面,方面上面和属性上面

二.Spring注解开发准备

1.导入jar包

(1).导入基本的jar包

这里写图片描述

(2).导入aop的jar包

这里写图片描述

2.创建类,创建方法

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

(1)上一次做ioc基本功能,引入约束beans
(2)做spring的ioc注解开发,引入新的约束
<?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"> <!-- bean definitions here -->
</beans>    

4.开启注解扫描

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

        <!-- 
                                 扫描属性上面的注解
         -->
<!--        <context:annotation-config></context:annotation-config> -->
  • 注解创建对象
    • 在创建对象的类上面使用注解实现
@Component(value=book")  //相同于<bean id="user" class=""/>
public class Book {

    public void add() {
        System.out.println("Book add");
    }

}
public class SpringDemo {

    @Test
     public void fun1() {
         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");    

         Book book=(Book)context.getBean("book");

         book.add();
     }
}
  • 创建对象有四个注解

这里写图片描述

  • @Component
  • @Controller
  • @Service
  • @Repository

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

5.创建对象单实例还是多实例

@Service(value="user")  //<bean id="user" class=""/>
@Scope(value="prototype") //多实例
public class User {

    public void add() {
        System.out.println("add...");
    }
}

6.注解注入属性

(1).创建service类,创建dao类,在service得到dao对象,注入属性第一个注解@Autowired
A.创建dao和service对象
@Component(value="userDao")
public class UserDao {

     public void add() {
         System.out.println("UserDao add");
     }
}
B.在service类里面定义dao类型属性
@Component(value="userService")
public class UserService {

     //得到dao对象
    //1.定义dao类型属性
    //在dao属性上面使用注解 完成对象注入
    @Autowired
    private UserDao userDao;
    //使用注解方式时候不需要set方法

    public void add() {
        System.out.println("UserService add");
        userDao.add();
    }

}
(2).注入属性第二个注解 @Resource
@Component(value="userService")
public class UserService {

    //name属性值写 注解创建dao对象value的值
    @Resource(name="userDao")
    private UserDao userDao;

    public void add() {
        System.out.println("UserService add");
        userDao.add();
    }

}

三.配置文件和注解混合使用

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

<?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"> <!-- bean definitions here -->

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


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

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

@Component(value="bookService")
public class BookService {

     @Resource(name="bookDao")
     private BookDao bookDao;
     @Resource(name="ordersDao")
     private OrdersDao ordersDao;

     public void add() {
         System.out.println("BookService add");
         bookDao.add();
         ordersDao.add();
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值