spring注解方式管理bean实例以及属性注入

整体思路:

  1. 导包
  2. xml配置文件,到 spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html                                                目录下最底部的 xsd-configuration.html  文件 找到 context 的约束复制粘贴进xml配置文件:applicationContext.xml中。
  3. 创建 组件扫描 标签 <context:component-scan base-package="com.xie.controler" />                                                             base-package 的值为需要扫描的包的相对路径
  4. 在开启了组件扫描的包中用用注解的方式进行类和属性的注解,完成配置

@Component:组件.(作用在类上) 

  • Spring 中提供@Component 的三个衍生注解:(功能目前来讲是一致的)
  • * @Controller :WEB 层
  • * @Service  :业务层
  • * @Repository :持久层
  • 这三个注解是为了让标注类本身的用途清晰,Spring 在后续版本会对其增强 

属性注入的注解:(使用注解注入的方式,可以不用提供 set 方法.) 

  • @Value  :用于注入普通类型.
  • @Autowired :自动装配:
  • * 默认按类型进行装配.
  • * 按名称注入:
  • * @Qualifier:强制使用名称注入.
  • @Resource 相当于: * @Autowired 和@Qualifier 一起使用. 
  • 常用@Resource(name=“需要注入的对象如:userDao”)

 Bean 的作用范围的注解: 

  • @Scope: 
  • * singleton:单例
  • * prototype:多例   

Bean 的生命周期的配置: 

  • @PostConstruct :相当于 init-method
  • @PreDestroy  :相当于 destroy-method 
  1. 配置好后,哪里想用哪里用:                                                                                                                                                                       

  2.  a:创建工厂实例                                                                                                                                                                                         

  3. b:工厂去创建需要创建的类                                                                                                                                                                     

  4. c: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"> <!-- bean definitions here -->

<!--使用springIOC注解的方式注解类的步骤
	1.先在xml文件里的开头声明定义context的规则
	2.创建一个组件扫描器,作用是在指定的包下扫描注解类  -->
	
	<context:component-scan base-package="com.xie.controler" />
	<context:component-scan base-package="com.xie.dao" />
	<context:component-scan base-package="com.xie.service" />
	


</beans>

UserControler.java:

package com.xie.controler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

import com.xie.dao.UserDao;

@Controller("UserControler")
public class UserControler {
    @Autowired
    @Qualifier("UserDao")
    private UserDao userDao;
    
    public void say() {
        System.out.println("这里是UserControler!");
        userDao.say();
    }
    
    
}

UserDao.java:

package com.xie.dao;

import org.springframework.stereotype.Repository;

@Repository("UserDao")
public class UserDao {
    
    public void say() {
        System.out.println("这里是UserDao!");
    };
}

SpringTest.java:

package com.xie.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.xie.controler.UserControler;

public class SpringTest {
    @Test
    public void springTest01(){
        //1.创建工厂
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.用spring去生成实例化对象
        UserControler userControler = (UserControler) applicationContext.getBean("UserControler");
        //3.调用方法
        userControler.say();
        
    }
    
}

Spring 的 Bean 管理的方式的比较: 


 
 
XML 和注解: * XML :结构清晰.

* 注解 :开发方便.(属性注入.) 
 
实际开发中还有一种 XML 和注解整合开发:

* Bean 有 XML 配置.但是使用的属性使用注解注入. 

猜你喜欢

转载自blog.csdn.net/qq_40612528/article/details/85138136