一、基于@Component注解的配置
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。
在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。
1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
@component用法如下:
在类上使用@Component注解,表示该类定义为Spring管理Bean,使用默认value(可选)属性表示Bean标识符。
相当于:
@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。
下面写这个是引入component的扫描组件
其中base-package为需要扫描的包(含所有子包)
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
二、使用实例
User.java:用@Repository注解
UserDao.java
UserDaoImp.java:用@Controller注解
UserService.java:用@Service注解
beans.xml'
测试下:
结果:
当在组件类中使用了特定的注解之后,还需要在Spring的配置文件中声明 <context:component-scan>:
- base-package属性指定一个需要扫描的基类包,Spring容器将会扫描整个基类包里及其子包中的所有类
- 当需要扫描多个包时,可以使用逗号分隔
- 如果仅希望扫描特定的类而非基包下的所有类,可使用resource-pattern属性过滤特定的类,实例:
- <context:include-filter>子节点表示要包含的目标类
- <context:exclude-filter>子节点表示要排除在外的目标类
- <context:component-scan>下可以拥有若干个<context:include-filter>和<context:exclude-filter>子节点
- <context:include-filter>和<context:exclude-filter>子节点支持多种类型的过滤表
三、更多的配置元数据
1、@Lazy:定义Bean将延迟初始化,使用方式如下:
使用@Lazy注解指定Bean需要延迟初始化。
2、@DependsOn:定义Bean初始化及销毁时的顺序,使用方式如下:
3、@Scope:定义Bean作用域,默认单例,使用方式如下:
4、@Qualifier:指定限定描述符,对应于基于XML配置中的<qualifier>标签,使用方式如下:
可以使用复杂的扩展,如@Mysql等等。
5、@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常,使用方式如下:
相关推荐
总的来说,Spring的注解式依赖注入极大地简化了Java应用的配置,使得开发人员可以更专注于业务逻辑,而非繁琐的配置工作。通过研究这个示例,你可以更好地理解和掌握Spring框架的核心特性,提高你的开发效率。
3. DAO实现:Spring将自动创建Mapper接口的代理对象,通过@Autowired注解注入到Service层,调用Mapper接口的方法执行SQL。 四、SpringMVC与Spring整合 1. DispatcherServlet配置:在web.xml中配置DispatcherServlet...
在Spring框架中,`@Value`注解是一个非常实用的工具,它允许我们在bean的属性或者方法参数中直接注入配置属性值,极大地提高了代码的可读性和灵活性。本项目"spring-demo13-注解-@Value.zip"显然是一个关于如何使用`...
通过`@MockBean`注解,可以在Spring容器中注入一个Mock对象,而`@SpyBean`则可以创建一个部分模拟的Bean。同时,`when()`和`thenReturn()`等方法可以定义Mock对象的行为,实现精确的预期控制。 3. **Web应用测试:*...
《Spring Framework 5.1.x 源码解析详细注解》 Spring Framework作为Java开发中的核心框架,其设计理念和实现机制对理解企业级应用的构建至关重要。本资源提供了Spring 5.1.x版本的源码详细注解,旨在帮助开发者...
在Java开发领域,Spring Boot以其简洁的配置和快速的启动特性,已经成为构建微服务应用的首选框架。而MyBatis作为一款强大的持久层框架,深受开发者喜爱,它提供了灵活的SQL映射功能,使得数据库操作变得更加简单。...
标题中的"spring.jar"、"spring-webmvc-struts.jar"和"spring-webmvc.jar"都是Spring框架相关的Java库文件,通常以.jar结尾的文件是Java的归档文件,包含了类、资源和元数据,用于Java应用程序的运行。这些文件在...
Spring框架是一个广泛应用的Java企业级应用开发框架,它提供了多种功能,包括但不限于依赖注入、面向切面编程、数据访问以及缓存等。 XML Schema(XSD)是一种用于定义XML文档结构和数据类型的规范。在这里,...
10. **@Autowired**:Spring的依赖注入注解,自动将Bean注入到需要它们的地方。可以配合@Qualifier使用,指定从Bean定义中选择哪一个。 11. **@Transactional**:用于标记一个方法或类为事务边界,Spring会自动管理...
2. Spring中的DI实现:Spring通过XML配置、注解以及Java配置三种方式实现DI。`spring-context.xsd`主要涉及XML配置方式,它定义了Spring上下文中的元素和属性,如`<bean>`、`<property>`等,用于声明和配置Bean及其...
5.0版本增强了配置元数据支持,包括XML、Java注解以及基于Java的配置。 在数据访问层,Spring Framework 5.0.2.RELEASE改进了对JDBC、JPA、Hibernate等ORM框架的支持。它提供了更丰富的模板类,简化了数据库操作。...
2. **增强的类型安全的依赖注入**:通过使用JSR-330注解,如`@Inject`,Spring 3.0实现了类型安全的依赖注入,减少了运行时错误。 3. **支持Java配置**:除了XML配置外,Spring 3.0引入了Java配置,允许开发者使用...
在Java后端开发领域,Spring框架的应用已经深入人心,而作为一款强大的Java集成开发环境(IDE),IntelliJ IDEA自然也需要与之配套的工具来提升开发效率。Spring Assistant 1.0.4就是这样一个为IntelliJ IDEA量身...
在依赖注入方面,Spring 4.2.0.RELEASE进一步简化了配置,通过Java配置类和注解,使得代码更加简洁易读。@Configuration和@Bean注解是核心,它们定义了bean的创建方式。此外,@Autowired注解用于自动装配依赖,极大...
它通过读取配置元数据(XML、Java注解或Groovy脚本)来初始化和管理对象。 3. **AOP**: - AOP允许开发者定义“方面”,这些方面封装了横切关注点,如日志记录、事务管理等。Spring AOP支持使用代理模式实现切面,...
Spring 以其 IoC(Inversion of Control,控制反转)和 DI(Dependency Injection,依赖注入)为核心,极大地简化了 Java 应用的开发。 MyBatis-Spring 的主要功能包括: 1. **SqlSessionTemplate**:这是一个 ...
- 使用注解进行依赖注入,简化代码。 - 通过 AOP 实现事务管理,确保数据一致性。 - 利用 SpEL 进行动态计算和属性设置。 - 利用 IoC 容器管理各种服务,提升代码可测试性。 总结,Spring Core 3.2.5 集合包是 ...
- 使用@Autowired注解注入Mapper接口,然后在业务逻辑中调用方法执行SQL。 4. **jar包解析**:解压后的jar包可能包括Spring的核心库、MyBatis的核心库、以及它们的依赖库,如log4j、slf4j、cglib、asm等。每个库都...
(4)注入Mapper:在需要使用Mapper的Spring Bean中,通过@Autowired注解注入Mapper接口。 4. 事务管理 MyBatis-Spring允许使用Spring的声明式事务管理。只需在Spring配置文件中声明PlatformTransactionManager,...
综上所述,"spring-demo-xuzhqii_java_" 项目可能包含了 Spring 框架的基本使用,如依赖注入、注解驱动、MVC 结构等。对于初学者来说,这是一个很好的起点,可以从中学习到 Spring 如何管理和协调 Java 应用中的组件...