首页 技术 正文
技术 2022年11月12日
0 收藏 889 点赞 4,768 浏览 2691 个字

http://blog.csdn.net/p_3er/article/details/9231307

1、命名空间

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

a、引入context命名空间

[html] view
plain
copyprint?

  1. <beans
  2. xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-3.0.xsd">

b、打开注解功能

[html] view
plain
copyprint?

  1. <context:annotation-config />

2、@Autowired与@Resource

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

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

@Autowired是推荐使用的。

3、具体使用:

UserDao与UserDaoImpl:

[java] view
plain
copyprint?

  1. public interface UserDao {
  2. public void save();
  3. }

[html] view
plain
copyprint?

  1. public class UserDaoImpl implements UserDao {
  2. public void save() {
  3. System.out.println("保存用户…");
  4. }
  5. }

UserService接口及其实现类UserServiceImpl:

[java] view
plain
copyprint?

  1. public interface UserService {
  2. public void addUser();
  3. }

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

[java] view
plain
copyprint?

  1. public class UserServiceImpl implements UserService {
  2. //1
  3. @Autowired private UserDao userDao;
  4. public UserServiceImpl(UserDao userDao, String username) {
  5. this.userDao = userDao;
  6. this.username = username;
  7. }
  8. public void addUser() {
  9. System.out.println(username);
  10. userDao.save();
  11. }
  12. }

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

[java] view
plain
copyprint?

  1. @Autowired
  2. public void setUserDao(UserDao userDao) {
  3. this.userDao = userDao;
  4. }

[java] view
plain
copyprint?

  1. @Resource private UserDao userDao;

[java] view
plain
copyprint?

  1. @Resource
  2. public void setUserDao(UserDao userDao) {
  3. this.userDao = userDao;
  4. }

配置文件:

[html] view
plain
copyprint?

  1. <beans
  2. xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  10. <context:annotation-config />
  11. <!–  配置文件中,UserDaoImpl与UserServiceImpl是相互对立,没有任何关系的。–>
  12. <bean id="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>
  13. <bean id="userService" class="cn.framelife.spring.service.impl.UserServiceImpl"></bean>
  14. lt;beans>

4、注意:

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,075
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,551
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,399
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,811
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,893