还是需要在
xml
文件中配置
bean
JCP:
Java Community Process
是由多个厂家出人来构成的
J2EE
组织,主要是用于定
Java
的一些新的标准
而每一个标签都可以称之为一个
JSR
而每一个新的
JSR
都会加一个数字是区别什么
JSR
,可以到官方网看看具体
JSR
定了哪些新的标准。
代码:
import javax.annotation.Resource;
public class UserService {
private UserDao userDao = new UserDaoImpl ();
public UserDao getUserDao() {
return userDao ;
}
// 在这里引用了一个资源,这个资源的名称和这个 setter 方法后面的成员属性名称一致 (userDao)
// 注意这个 @Resource 是 J2EE 的 (import javax.annotation.Resource)
@Resource
public void setUserDao(UserDao userDao) {
this . userDao = userDao;
}
public void add(User u){ userDao .save(u);}
}
说明:
在这里引用了一个资源,这个资源的名称和这个
setter
方法后面的成员属性名称一致
(userDao)
注意这个
@Resource
是
J2EE
的
(import javax.annotation.Resource)
@Resource
默认是根据
byName
来的,如果没有找到相同的名称再根据
byTyp
e
,当然也可以指定
bean
的
name
如下:
@Resource (name= "u2" )
public void setUserDao(UserDao userDao) {
this . userDao = userDao;
}
注意
:
一般使用
@Resource
而不会使用
@Autowired
不足:如果没有源码,就无法使用
annotation
,只能使用
xml
以上使用
@Autowired
、
@Resource
注解时,还是需要在
xml
文件配置
bean
,这样就达不到完全使用
annotation
进行注解。因此现在引用
@Component
在那个
bean
前进行注解,表示那个类是需要的
bean
有了
@Componet
注解,这样就不需要在
xml
文件中配置
bean
了。
注意:
@Componet
是
Spring
的注解
(
org.springframework.stereotype.Component;
)
例如:
前缀部分见上面代码,以此略。。。
< context:annotation-config />
< context:component-scan base-package = "com.wjt276" />
</ beans ><!— 不需要配置 bean 了 -->
bean
类中需要使用
@Componet
(或
@Service
、
@Repository
、
@Controller
)注解这个类是
bean
。
代码:
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
// @Componet 注解默认 bean 的名称是类名首字母小写
// 也可以利用 value 属性指定 bean 的名称
@Component (value= "userService" )
public class UserService {
private UserDao userDao = new UserDaoImpl();
public UserDao getUserDao() { return userDao ;}
// 在这里引用了一个资源,这个资源的名称和这个 setter 方法后面的成员属性名称一致 (userDao)
// 注意这个 @Resource 是 J2EE 的 (import javax.annotation.Resource)
@Resource
public void setUserDao(UserDao userDao) { this . userDao = userDao;}
public void add(User u){ userDao .save(u);}}
注意:
@Componet
注解,默认
bean
的名称是类的首字母小写,当然也可以利用
value
属性指定
bean
名称(在
annotation
中属性为
value
可以不写,直接写值)
一般建议
@Componet
注解后面都指定名称。
说明:
当
Spring
在加载配置文件时,
发现有
<
context:component-scan
base-package
=
"com.wjt276"
/>
标签,
并且后面的
base-package
属性指定了包名
,就会在这个指定的包名下面搜索灰,看哪个类用
@Componet
进行了注解,如果有
Spring
就将其初始化到容器中,认为是一个
bean
五、
@Scope
、@PostConstruct
、@PreDestroy
@Scope
对应于
xml
配置文件的
scope
属性
@PostConstruct
对应于
xml
配置文件中的
init-method
属性
@PreDestroy
对于应于
xml
配置文件中的
destroy-method
属性
例如如下:
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component (value= "userService" )
@Scope ( "singleton" )
public class UserService {
@PostConstruct
public void init(){System. out .println( " 现在开始初始化 UserService" );}
private UserDao userDao = new UserDaoImpl();
public UserDao getUserDao() { return userDao ;}
@Resource
public void setUserDao(UserDao userDao) { this . userDao = userDao;}
public void add(User u){ userDao .save(u);}
@PreDestroy
public void destroy(){System. out .println( "destory" ); }
1
、
@Autowired
org.springframework.beans.factory.annotation.Autowired;
2
、
@Qualifier
org.springframework.beans.factory.annotation.Qualifier;
3
、
@Componet
org.springframework.stereotype.Component;
4
、
@Resource
javax.annotation.Resource;
5
、
@Scope
org.springframework.context.annotation.Scope;
6
、
@PostConstruct
javax.annotation.PreDestroy;
7
、
@PreDestroy
javax.annotation.PreDestroy;
分享到:
相关推荐
在本文中,我们将探讨如何将Direct Web Remoting (DWR) 3.0与Spring 2.5框架整合,并利用注解(Annotation)进行配置。DWR是一个允许JavaScript与Java服务器端进行交互的库,而Spring 2.5引入了对注解的强大支持,...
文件Spring_3300_Registration_11可能是一个示例项目,包含了上述整合的实例,包括Action、Service、DAO、配置文件等,开发者可以通过学习和运行这个项目来理解和实践Struts2、Hibernate3、Spring2.5的整合以及注解...
2. **注解驱动开发(Annotation-based Development)**:Spring 2.5开始大规模支持Java注解,比如`@Service`、`@Repository`和`@Controller`,它们分别用于标记业务层、数据访问层和控制层的组件。这使得XML配置文件...
博文链接:https://pesome.iteye.com/blog/236273
Struts2、Spring2.5和Hibernate3.0是Java Web开发中三个非常重要的框架,它们各自负责不同的职责,但可以协同工作以构建高效、可维护的Web应用程序。本项目整合了这三个框架,并利用注解(Annotation)进行配置,...
Spring 2.5是Spring框架的一个重要版本,它在...通过深入学习Spring 2.5的源码,开发者可以更好地理解Spring框架的设计思想和工作原理,从而提高开发效率和代码质量。同时,这也为理解后续版本的改进和发展奠定了基础。
首先,Spring2.5引入了基于注解的配置(Annotation-based Configuration),这极大地简化了XML配置文件的编写,使得应用程序的装配过程更加直观和简洁。开发者可以通过在类或方法上添加如@Service、@Repository、@...
这个"Struts2+Spring2.5+Hibernate3+annotation 整合程序"旨在展示如何将这三大框架与注解(Annotation)技术结合,以实现更高效、更简洁的代码编写。 Struts2是一个基于MVC设计模式的Web应用框架,它主要负责处理...
spring2.5 + hibernate3.2x 标注(annotation)开发的简单示例 http://blog.csdn.net/IamHades/archive/2008/01/11/2038188.aspx
2. **注解驱动的开发(Annotation-based Development)**:Spring 2.5引入了大量的新注解,如`@Autowired`、`@Service`、`@Repository`和`@Controller`等,极大地减少了XML配置文件的使用。这些注解简化了组件扫描和...
**Spring 2.5 中文帮助文档概述** Spring框架是Java平台上的...阅读"Spring2.5中文帮助手册.pdf"和"Spring2.5有哪些改进.txt"这两个文件,将能详细了解到这些改进的实施细节和使用方法,为实际开发工作提供有力支持。
Spring 2.5 API 是 Spring 框架的一个版本,发布于2008年,是当时的一个重要更新。这个版本引入了许多新特性,优化了已有功能,并为后续的3.0版本打下了基础。以下将详细介绍 Spring 2.5 API 中的关键知识点。 一、...
2. **注解驱动的开发(Annotation-based Development)**:Spring 2.5大量引入了注解,例如`@Service`、`@Repository`和`@Controller`,用于标记业务层、数据访问层和表现层的类,简化了XML配置文件。 3. **AOP(面向...
超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。不同的生成数据脚本实现。 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解...
在Spring框架中,TestContext模块为开发者提供了强大的测试支持,特别是在Spring 2.5版本中,这个测试框架进一步增强了测试的便利性和可扩展性。它允许我们以声明式的方式配置和管理测试环境,包括bean的初始化、...
【Spring2.5的新特性】 Spring框架自诞生以来,一直致力于简化企业级应用的开发,提供强大且非侵入式的解决方案。Spring2.5在这个方向上迈出了一大步,尤其对于使用Java 5或更高版本的开发者来说,它带来了更多便利...
通过阅读这份《Spring2.5-中文参考手册》,开发者可以深入理解Spring的核心机制,学习如何有效地利用其特性构建健壮、可维护的企业级应用。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。
在Spring 2.5中,最重要的更新之一是全面支持Java 5的注解(Annotation),这使得开发者可以更加简洁、直观地配置依赖注入。例如,@Autowired、@Qualifier、@Resource等注解,让代码更加整洁,减少了XML配置文件的...
在Spring 2.5版本中,面向切面编程(AOP)是一个强大的功能,它允许开发者定义“切面”来封装横切关注点,如日志、事务管理、权限检查等,使得代码更加模块化和可重用。AspectJ是一个成熟的AOP框架,Spring在其AOP...