Spring IOC Annotation
进行Annotation-based Configuration配置
在beans.xml里面的beans标签里面加入下列的属性
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
添加标签<context:annotation-config/>
声明可以使用注解即Annotations
@Autowired注解,作用:自动注入,不用指定要注入的bean的名字和类型,默认的方式为byName,如果通过byName找不到相应bean,就会按byType进行查找,一般注解加在set方法上
beans.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">
<context:annotation-config/>
<bean id="u1" class="com.edu.hpu.impl.UserDAOImpl">
<property name="daoID" value="1" />
</bean>
<bean id="u" class="com.edu.hpu.impl.UserDAOImpl">
<property name="daoID" value="2" />
</bean>
<bean id="userService" class="com.edu.hpu.service.UserService" >
</bean>
</beans>
@Autowired
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
如果想要特定的指定一个实例对象,可以使用@Qualifier(value="u")标签
@Autowired
public void setUserDAO(@Qualifier(value="u") UserDAO userDAO) {
this.userDAO = userDAO;
}
当进行注入的时候也可以使用注解@Resource(javax.annotation.Resource),作用和@Autowired一样,查找bean的方式默认是byName,如果通过byName找不到相应的bean,则通过byType进行查找
@Resource
public void setUserDAO(@Qualifier(value="u") UserDAO userDAO) {
this.userDAO = userDAO;
}
当存在的多个相同类型的bean且没有与set方法对应的属性名一样的时候,会报错,也可以通过Resource的name属性进行特定bean对象的指定
@Resource(name="u")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
如果不想在beans.xml写bean的配置的时候,可以使用@Component进行注解对应的bean,自动组合成可使用的组件,一般只有在类的作用层次不明确的时候使用@Component,如果类的作用层次明确使用下面给出的四个注解
在beans.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">
<context:annotation-config/>
<context:component-scan base-package="com.edu.hpu" />
<bean id="userService" class="com.edu.hpu.service.UserService" >
</bean>
</beans>
在UserDAOImpl类上面加上@Component注解
@Component
public class UserDAOImpl implements UserDAO {
使用@Component里面的value属性指定bean的名字
@Component(value="u")
public class UserDAOImpl implements UserDAO {
@Repository持久层bean注解 @Component不明确分层的注解可通用
@Service业务层的注解 @Controller控制层的注解
使用注解指定生存范围
@Scope(value="singleton")
使用注解指定生命周期
@PostConstruct
public void init() {
System.out.println("init");
}
@PreDestroy
public void destroy() {
System.out.println("destroy");
}
本文所述十分简短,如果想要知道具体的可参考spring提供的文档。
分享到:
相关推荐
在`IOC_Project`这个压缩包文件中,很可能是包含了一个示例项目,用于演示如何使用Spring的IOC Annotation注入。通过查看和运行这个项目,你可以更深入地了解这些概念并实践它们。项目的结构可能包括了源代码文件(`...
Spring IoC容器通过解析XML配置文件或使用注解来识别对象及其依赖关系,并在运行时自动装配这些对象,这就是依赖注入。 在Spring中,注解配置是取代传统XML配置的一种方式,它使得代码更加简洁、易读。例如,我们...
模拟Spring的IoC,我们可以创建一个简单的容器类,其中包含一个Map来存储bean。然后使用注解处理器扫描带有特定注解(如`@Component`)的类,并将它们注册到容器中。当需要注入依赖时,容器可以解析注解并自动装配。...
标题 "SpringIOC_SpringMVC_SpringAnnotation_JPA" 涵盖了四个核心的Java开发框架技术,它们是Spring框架的重要组成部分。Spring框架是一个全面的企业级应用开发框架,提供了许多功能,包括依赖注入(Dependency ...
根据提供的文件信息,内容涉及Spring框架中的IoC(控制反转)和Annotation(注解),以及使用这些技术进行数据库操作的CRUD示例。同时,内容中提到了C3P0连接池和DBUtils的使用,以及JUnit测试框架。下面将详细介绍...
在Spring框架中,注解(Annotation)自动匹配注入IoC(Inversion of Control,控制反转)是一种关键特性,它极大地简化了Java应用的配置管理。本文将深入探讨这一主题,帮助开发者更好地理解和利用这一功能。 首先...
在Spring 2.5版本后,Spring引入了注解来简化配置,这就是所谓的Annotation-based IOC。本文将深入探讨Spring注解驱动的IOC机制。 ### 1. 注解的引入 传统XML配置方式虽然灵活,但随着项目规模的扩大,XML配置文件...
**Spring IOC(控制反转)与注解详解** 在Java开发领域,Spring框架是不可或缺的一部分,尤其它的核心特性——控制反转(Inversion of Control,简称IOC)。Spring IOC将对象的创建和管理从应用代码中分离出来,让...
标题中的"Spring_1200_IOC_Annotation_Component"表明我们即将探讨的是关于Spring框架的IoC(Inversion of Control,控制反转)和基于注解的组件管理。在这个主题下,我们将深入理解Spring如何通过注解来实现依赖...
Spring 框架的核心特性之一是Inversion of Control(IoC),也被称为依赖注入(Dependency Injection,DI)。IoC使得应用程序中的对象不再负责创建和管理它们的依赖对象,而是将这个责任交给了一个外部的容器,即...
技术分享:详解Spring基于Annotation的依赖注入实现
**Spring 2.5 IOC(控制反转)的简单实现** Spring 框架是 Java 开发中的一个核心组件,尤其在企业级应用中广泛应用。它提供了依赖注入(Dependency Injection,DI),也就是通常所说的控制反转(Inversion of ...
在Nutz中使用Ioc-Annotation的入门教程 Nutz是一个轻量级的Java开发框架,它提供了强大的IoC(Inversion of Control)容器和AOP(Aspect-Oriented Programming)支持。本教程将引导您了解如何在Nutz中利用Ioc-...
AspectJ是Spring的AOP框架中的一种Annotation,可以用来实现各种类型的切面逻辑。 Spring IOC和AOP的优点 Spring IOC和AOP的优点是: * 降低耦合度: IOC和AOP可以使得对象之间的耦合度降低,从而提高系统的灵活...
SpringIoCanotation Spring IoC @Annotation-有和没有@Autowired 实验!
spring 的aop的详解如:切面,连接点,通知,切入点,目标对象,代理对象及annotation方式的aop实现和xml方式的事务管理等
在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器之一。随着技术的发展,Spring引入了注解(Annotation),极大地简化了配置,使得代码更加简洁、易...