首页 > 其他分享 >Spring常用注解,自动扫描装配Bean

Spring常用注解,自动扫描装配Bean

时间:2024-06-10 12:32:52浏览次数:17  
标签:装配 name Autowired 按类型 Spring Bean context 注解

1 引入context命名空间(在Spring的配置文件中),配置文件如下:

Xml代码

xmlns:context="http://www.springframework.org/schema/context"    
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-2.5.xsd

打开配置 <context:component-scan base-package="包名(扫描本包及子包)"/>

spring 会自动扫描cn.pic包下面有注解的类,完成Bean的装配。

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-2.5.xsd               
    http://www.springframework.org/schema/context              
    http://www.springframework.org/schema/context/spring-context-2.5.xsd">                           
    <context:component-scan base-package="cn.pic"/>    
</beans>

2 在classPath中加入注解用的jar包

lib\j2ee\common-annotations.jar

Spring 的context:component-scan扫描支持扫描jar包的方法:

eclipse自带的jar打包程序,默认打包的时候有个选项<Add directory entries>没有勾选,只要勾选了,就可以了.

-----------常用注解--------

--定义Bean的注解

@Controller

@Controller("Bean的名称")

定义控制层Bean,如Action

@Service          

@Service("Bean的名称")

定义业务层Bean

@Repository   

@Repository("Bean的名称")

定义DAO层Bean

@Component  

定义Bean, 不好归类时使用.

--自动装配Bean (选用一种注解就可以)

@Autowired  (Srping提供的)

默认按类型匹配,自动装配(Srping提供的),可以写在成员属性上,或写在setter方法上

@Autowired(required=true)

一定要找到匹配的Bean,否则抛异常。 默认值就是true

@Autowired

@Qualifier("bean的名字") 

按名称装配Bean,与@Autowired组合使用,解决按类型匹配找到多个Bean问题。

@Resource JSR-250提供的

默认按名称装配,当找不到名称匹配的bean再按类型装配.

可以写在成员属性上,或写在setter方法上

可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是未指定name属性, 默认使用成员属性的变量名,一般不用写name属性.

@Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.

@Inject 是JSR-330提供的

按类型装配,功能比@Autowired少,没有使用的必要。

--定义Bean的作用域和生命过程

@Scope("prototype")

值有:singleton,prototype,session,request,session,globalSession

@PostConstruct 

相当于init-method,使用在方法上,当Bean初始化时执行。

@PreDestroy 

相当于destory-method,使用在方法上,当Bean销毁时执行。

--声明式事务

@Transactional 

标签:装配,name,Autowired,按类型,Spring,Bean,context,注解
From: https://blog.csdn.net/2301_80488214/article/details/139575397

相关文章

  • 基于SpringBoot+Vue的项目申报管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 基于SpringBoot+Vue的小型医院医疗设备管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • springboot网上商城购物系统
    获取源码:链接:https://pan.baidu.com/s/1EpIeQfssLG7mfWDrRG0fXA?pwd=gwsv 提取码:gwsv2.1 B/S架构 B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作......
  • Springboot计算机毕业设计饮品点单系统小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着消费模式的转变和移动互联网的普及,饮品行业面临着巨大的发展机遇。传统的饮品点单方式往往效率低下,且无法满足消费者对个性化、便捷性服务的需求......
  • Springboot计算机毕业设计饮品店点单小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在快节奏的现代生活中,饮品店因其便捷、时尚的特点,成为了人们日常生活中不可或缺的一部分。然而,传统的饮品店点单方式往往存在效率低下、服务体验不佳......
  • “【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列”文章说了
    在SpringBoot中整合RabbitMQ以实现延迟队列和死信队列的功能,主要涉及以下几个关键步骤:1.引入依赖:首先,在项目的pom.xml文件中添加RabbitMQ的依赖。2.配置RabbitMQ:在application.properties或application.yml文件中配置RabbitMQ的相关参数,包括连接信息、交换机名称、队列名......
  • Spring
    Spring框架 IOC(依赖注入)AOP(面向切面编程)工厂模式代理模式Spring的核心Spring框架的重要主城部分在Spring的配置文件中配置相应的bean,设置相关属性,让Spring容器来生成类的实例对象以及管理对象。Spring容器启动时会把配置文件中的bean都初始化,在需要调用的时候把初始化好的be......
  • SpringBoot: 可执行jar的特殊逻辑
    这一篇我们来看看Java代码怎么操作zip文件(jar文件),然后SpringBoot的特殊处理,文章分为2部分ZipAPI解释,看看我们工具箱里有哪些工具能用SpringBoot的特殊处理,看看SpringBootJar和普通Jar的不同1.ZipAPI解释1.ZipFile我们先通过ZipFile来读取jar文件,通过ZipFile#entries......
  • 基于SpringBoot+Vue+uniapp的大学生就业信息平台(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的网络小说微信小程序的详细设计和实现(源码+lw+部署文档+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......