第二章 IoC Annotation注入

简介: <h1><span style="font-family:Times New Roman,serif">1、</span>命名空间</h1> <p lang="zh-CN" align="JUSTIFY" style="margin-bottom:0cm; widows:0; orphans:0"><span style="color:#00000a"><span style="fon

1、命名空间

使用Annotation的方式,需要在spring的配置文件中配置命名空间。命名空间中,隐式地注册了多个对注解进行解析处理的处理器。



a、引入context命名空间

<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-3.0.xsd">

b、打开注解功能

<context:annotation-config />


2、@Autowired@Resource

          @Autowired@Resource在使用上是没有任何区别的。即可以放于属性声明之前,也可以放于属性的setter方法头上。

     只是@Autowired注解是由Spring提供的,它是按类型进行装配。而@Resource是由JavaEE提供的,它是按属性的名字进行装配,找不到名字后再找类型按类型装配。

          @Autowired是推荐使用的。


3、具体使用:

UserDaoUserDaoImpl:

[java]  view plain copy print ?
  1. public interface UserDao {    
  2.     public void save();    
  3. }    
[html]  view plain copy print ?
  1. public class UserDaoImpl implements UserDao {    
  2.     public void save() {    
  3.         System.out.println("保存用户...");    
  4.     }    
  5. }    

UserService接口及其实现类UserServiceImpl:

[java]  view plain copy print ?
  1. public interface UserService {    
  2.     public void addUser();    
  3. }    

在UserServiceImpl中使用注解把UserDao对象注入进来使用。

public class UserServiceImpl implements UserService {
    //1
    @Autowired private UserDao userDao;

  
    public UserServiceImpl(UserDao userDao, String username) {  
        this.userDao = userDao;  
        this.username = username;  
    }  
  
    public void addUser() {  
        System.out.println(username);  
        userDao.save();  
    }  
} 

在上面注释1的地方还可以替换成以下几种方式:

@Autowired 
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

@Resource private UserDao userDao;

@Resource
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

配置文件:

 <beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    <context:annotation-config />

    <!--  配置文件中,UserDaoImpl与UserServiceImpl是相互对立,没有任何关系的。-->
    <bean id="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>
    <bean id="userService" class="cn.framelife.spring.service.impl.UserServiceImpl"></bean>

<beans>

4、注意:

1、使用注解功能,必须是JDK5.0及以上版本。

2、一般来说,基本数据类型的属性不使用Annotation的方式注入,Annotation只用于Bean的装配。而且,如果不是必须,基本数据类型的属性一般不使用注入的方式。





目录
相关文章
|
JSON 前端开发 Java
❤️最后的大爆发❤️五万字总结SpringMVC教程——三部曲封神之作(建议收藏)
❤️最后的大爆发❤️五万字总结SpringMVC教程——三部曲封神之作(建议收藏)
359 0
❤️最后的大爆发❤️五万字总结SpringMVC教程——三部曲封神之作(建议收藏)
element UI实现输入建议下拉列表 —— el-select filterable可筛选的下拉列表 or 带输入建议的输入框 el-autocomplete ?
element UI实现输入建议下拉列表 —— el-select filterable可筛选的下拉列表 or 带输入建议的输入框 el-autocomplete ?
766 0
|
消息中间件 存储 NoSQL
rocketmq实现延迟队列思路探讨
本文介绍了两种实现RocketMQ延迟消息的方法。非任意时间延迟可通过在服务器端配置`messageDelayLevel`实现,但需重启服务。任意时间延迟则分为两种策略:一是结合原生逻辑和时间轮,利用RocketMQ的默认延迟等级组合支持任意延迟,但可能丢失1分钟内的数据;二是使用存储介质(如Redis)加时间轮,消息存储和定时发送结合,能处理数据不一致和丢失问题,但涉及更多组件。推荐项目[civism-rocket](https://github.com/civism/civism-rocket)作为参考。
773 1
|
算法 数据挖掘 大数据
到底什么才是数据分析思维? by彭文华
到底什么才是数据分析思维? by彭文华
|
存储 缓存 安全
【 Java中String源码分析(JVM视角你不来看看?】
【 Java中String源码分析(JVM视角你不来看看?】
|
存储 安全 Java
《JavaSE-第二十二章》之线程安全问题
《JavaSE-第二十二章》之线程安全问题
165 1
|
算法 程序员
链表翻转的变形 | 算法必看系列八
本节课会通过三道变形题讲解链表的翻转,相信学完本节课会对链表有一个更加深刻地印象。
链表翻转的变形 | 算法必看系列八
|
数据库 关系型数据库 MySQL
|
测试技术 API Android开发
Android 沉浸式风格(为毛叫沉浸式这么唬人)
一、参考 1、Android 沉浸式状态栏攻略 让你的状态栏变色吧 2、android设置状态栏颜色(沉浸式状态栏) 3、Android状态栏微技巧,带你真正理解沉浸式模式 4、android4.4以上沉浸式状态栏和导航栏实现以及Bar的其他管理 心得:看了大神们写的,告诫自己不要被沉浸式唬住,其实就是个名字而已,展现就是个风格(主要和状态栏颜色,高度,是否隐藏相关而已),千万别被绕进去。
1369 0