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提供的文档。
分享到:
相关推荐
Spring IOC Annotation 注入 学习实例
Spring_Annotation_IOC
spring
NULL 博文链接:https://wolfsoft.iteye.com/blog/799226
NULL 博文链接:https://hi-beijing.iteye.com/blog/1204766
技术分享:详解Spring基于Annotation的依赖注入实现
SpringIoCanotation Spring IoC @Annotation-有和没有@Autowired 实验!
spring 的aop的详解如:切面,连接点,通知,切入点,目标对象,代理对象及annotation方式的aop实现和xml方式的事务管理等
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Scope; import org.spring...
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1831427
一个基于注解的轻量级IOC容器,模拟 Spring IOC,支持循环依赖处理。 Maven引入 <id>byx-maven-repo <name>byx-maven-repo <url>https://gitee.com/byx2000/maven-repo/raw/master/</url> <groupId>byx...
资料包含spring-iocdi-annotation-document,iocdi-annotation-mvc,iocdi-xml-extend,iocdi-annotation-extend proxy,jdkproxy-transaction,jdkproxy-salary,day02-itheima11-spring-08-cglibproxy,day02-itheima11-...
三种注入类型。IOC/AOP方面的知识。如基础bean的配置,Annotation。挺详细的.
spring框架的主要知识点,含ioc,aop,annotation等关键值时点
主要介绍了springboot aspect通过@annotation进行拦截的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
注释的方法产生一个由Spring IoC容器管理的bean 刻板印象注释 Component-将带注释的类标记为组件扫描找到的并加载到应用程序上下文中的bean 注释的类标记为包含请求处理程序的Spring MVC的Bean @RestController ...
基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置