Spring半注解半Xml

一、 @Component

1.Component

    标记了注解, 默认的名称是:简单类名,首字母小写UserDaoImpl -> userDaoImplUserServiceImpl -> userServiceImplComponent可以使用value属性指定对象的名称,相当bean标签的id属性
Component注解有三个子注解(注意:Component注解和三个子注解作用一致)@Service: 业务层@Controller : 表现层@Repository: 持久层

Component 默认的名称是:简单类名,首字母小写
Component可以使用value属性指定对象的名称,相当bean标签的id属性
使用value属性指定对象
测试类中
测试

 <context:component-scan base-package="com.itheima"><!--include : 包含--><!--filter: 过滤--><!--<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" ></context:include-filter>--><!--exclude: 排除--><!--<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"></context:exclude-filter>--></context:component-scan>

开启注入扫描, 指定扫描的包, 扫描 Component注解
base-package: 指定扫描的包, 扫描com.itheima 包及其子包
 扫描 Component注解
如果将数据源和注入分开 context 必须写在主中
需要改为context

2.Autowired: 自动装配

@Autowired: 自动装配
* 可以直接把容器中的对象注入到另外一个对象中
* 如果该接口有多个实现类, 需要指定对象的名称,如果不指定,会报错
*
* 如果没有指定名称,有多个实现类,根据属性名称在容器中查找
@Autowired: 自动装配

  • @Qualifier(“userDaoImpl2”): 可以指定对象在容器中的名称
    • 该注解必须结合Autowired进行使用
    • @Resource: 自动装配 --可以使用name属性指定对象在容器中的名称
    • @Autowired 和@Resource
    •  都是自动装配
      
    •  Autowired, 默认按照类型装配,如果类型有多个,则按照名称查找, 由spring提供
      
    •  @Resource:默认是按照名称装配,如果名称没有找到,则按照类型装配, 有Jdk提供
      

注解总结

a. Bean: 标记在方法上,作用:将方法返回值放到springIOC容器中,可以使用value属性指定对象的名称
该注解适合创建 引用(其他)类对象
与xml映射:
b. Value: 标记在属性上,作用:给简单类型的属性赋值
相当于xml的 value属性
c. 【重点】Component: 标记在类上,作用:创建该类的对象,放到springIOC容器中,可以使用value属性指定对象的名称
该注解适合创建自定义的类对象
子注解:@Service(用于业务层) @Repository(用于持久层), @Controller(用于表现层)的作用与@Component 一样

与xml映射: <bean id="" class="">

d. 【重点】Autowired: 标记在属性和set方法上, 可以没有set方法,作用:自动注入依赖的对象
Qualifier:标记在属性和set方法上, 作用:指定依赖对象的名称

e. Resource: 标记在属性和set方法上, 可以没有set方法,作用:自动注入依赖的对象
可以使用name属性指定依赖对象的名称
f. Autowired 和Resource对比
两个都是自动注入(自动装配)
Autowired:默认按照类型装配,如果类型有多个,按照指定的名称装配, 由spring提供
Resource: 默认按照指定的名称装配,如果没有找到名称,按照类型装配, 由jdk提供
g. @Import: 标记在配置类上,作用引入其他的配置文件(xml)
【重点】
h. @PropertySource :标记在类上,作用引入属性文件(properties)
【重点】xml 映射:<context:property-placeholder location=“classpath:db.properties”></context:property-placeholder>
i. Configuration:标记在类上,作用 代表该类为配置文件
j. ComponentScan:标记在类上,作用 扫描包,创建对象
【重点】<context:component-scan base-package=“com.itheima”></context:component-scan>
l. Scope: 指定对象的范围
m: 与生命周期相同的注解
@PostConstruct:对象初始化执行的方法
@PreDestory:对象销毁时执行的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK 命令之 javadoc -- 生成API文档

文章目录命令简介命令选项中文乱码javadoc 命令实例进入源代码文件所在目录&#xff0c;解析指定的源代码文件&#xff0c;生成 API 文档解析指定包下的所有源码文件&#xff0c;生成 API 文档指定源文件根目录&#xff0c;再指定具体的包路径&#xff0c;解析其中的源码文件&a…

apache.camel_带有Spring Boot 2支持的Apache Camel 2.22发布

apache.camel今天&#xff0c;我们发布了最新的Apache Camel 2.22.0版本 &#xff0c;这是第一个正式完全支持Spring Boot 2的版本。这是一项重大的工作&#xff0c;因为针对像Apache Camel这样的大型框架将Spring Boot v1升级到v2付出了很多努力–感谢骆驼队和他们的贡献。 对…

纯注解的开发

使用纯注解开发 目录结构 JdbcConfiguration package com.itheima.Config;import com.mchange.v2.c3p0.ComboPooledDataSource; import org.apache.commons.dbutils.QueryRunner; import org.springframework.beans.factory.annotation.Value; import org.springframework.co…

IntelliJ IDEA forMac 如何生成项目的javadoc(API文档)

1.在菜单栏&#xff0c;点击 Tools -> Generate JavaDoc… 2.根据你自己的需要&#xff0c;设置解析源文件的范围、设置文档输出目录、设置资源的访问权限范围、字符编码、堆内存大小等。

vaadin_Vaadin Flow –奇妙的鹿

vaadin您可能知道&#xff0c;Vaadin是Java上最受欢迎的Web框架之一&#xff1a; https://zeroturnaround.com/rebellabs/java-web-frameworks-index-by-rebellabs/ https://javapipe.com/hosting/blog/best-java-web-frameworks/ 最近发布了此Web UI开发框架的新版本– Vaa…

Spring和Junit整合

一、引入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.2.RELEASE</version></dependency>二、在测试类中修改 &#xff08;1&#xff09;不带有配置文件的修改…

什么是stub文件_stub code

存根, 占位代码&#xff0c;占坑代码&#xff0c;桩代码&#xff0c;粘合代码&#xff0c;残存代码, 指满足形式要求但没有实现具体功能的占坑/代理代码。 stub code 给出的实现是临时性的/待编辑的。它使得程序在结构上能够符合标准&#xff0c;又能够使程序员可以暂时不编辑…

子类重写父类变量_为什么在子类中不重写超类的实例变量

子类重写父类变量当我们在父类和子类中创建一个具有相同名称的变量&#xff0c;并尝试使用持有子类对象的父类引用访问它时&#xff0c;我们会得到什么&#xff1f; 为了理解这一点&#xff0c;让我们考虑下面的示例&#xff0c;在该示例中&#xff0c;我们在Parent和Child类中…

Spring基于 XML 的声明式事务控制(配置方式)

一、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4…

javadoc - Java API 文档生成器(Windows版本)

文章目录简介命令语法结构Javadoc Doclets术语带文档的类引用类外部引用类源文件源代码文件包注释文件概述注释文件其他未处理文件生成的文件基本内容页交叉参考页支持文件HTML 框架生成的文件结构文档注释注释源代码JAVADOC 标记author name-textdeprecated deprecated-textex…

光缆故障测试_简单的测试可以防止最严重的故障

光缆故障测试错误处理是软件开发中最困难且被忽略的部分之一&#xff0c;而且如果系统是分布式的&#xff0c;那么这将变得更加困难。 不错的论文写在“ 简单测试可以预防最关键的故障” 主题上。 每个开发人员都应该阅读本文。 我将尝试总结本文的主要内容&#xff0c;但建议…

使用aop解决事务问题(xml版)

一、引入依赖 pom.xml代码&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

印象大使_基本服务-使用大使网关

印象大使这是我对Knative服务进行实验的延续&#xff0c;这次是围绕在Knative服务应用程序之上构建网关。 这建立在我之前的两篇文章的基础上- 使用Knative部署Spring Boot App以及在Knative中进行服务到服务的调用 。 为什么要在Knative应用程序之上使用网关 为了解释这一点&…

Eclipse 如何生成项目的javadoc(API 文档)

文章目录生成 javadoc 的三种方法乱码问题生成 javadoc 的三种方法 1.在项目列表中按右键&#xff0c;选择 Export&#xff0c;然后在 Export 对话框中选择 Java 下的 Javadoc&#xff0c;然后点击 Next 最后按 Finish 提交即可开始生成文档。 2.用菜单选择&#xff1a;File…

使用注解版AOP解决事务问题

一、注解版和xml版的区别 1、 通知的四种常用类型 &#xff08;1&#xff09;aop:before 作用&#xff1a; 用于配置前置通知。指定增强的方法在切入点方法之前执行 属性&#xff1a; method:用于指定通知类中的增强方法名称 ponitcut-ref&#xff1a;用于指定切入点的表达式…

Windows系统下彻底卸载MySQL数据库

1.正常卸载MySQL数据库 2.将 C:/ProgramData 目录下的子目录 MySQL 删除 注意&#xff1a;目录 ProgramData 是隐藏目录&#xff0c;你正常情况下看不到&#xff0c;你可以在文件地址栏输入 C:/ProgramData 进入该目录下。

ibm收购red hat_IBM将收购Red Hat:面向Java的初衷

ibm收购red hatOracle公司近九年前完成了收购Sun Microsystems的过程。 那是当时的大新闻&#xff0c;今天也宣布了类似的大新闻&#xff1a; IBM和Red Hat已经同意IBM收购Red Hat 。 IBM主页面宣布“ IBM收购Red Hat”。 然后&#xff0c;它说&#xff1a;“这将改变一切。” …

Windows系统的MySQL目录结构

安装目录 安装 MySQL 时&#xff0c;如果我选择安装在 D:\develop\MySQL&#xff0c;那么你安装好之后点击文件夹 MySQL 可以看到如下内容&#xff1a; 目录 bin&#xff1a;存放二进制可执行文件 目录 data&#xff1a;存放数据库日志文件等 目录 include&#xff1a;C语言…

java监控数据库性能_Java:GraalVM数据库流性能

java监控数据库性能GraalVM是JVM块的新成员。 它是一个开源虚拟机&#xff0c;能够同时运行多种编程语言&#xff0c;例如Java&#xff0c;Rust和JavaScript。 GraalVM还具有一个新的内部代码优化器管道&#xff0c;与某些条件下的其他JVM相比&#xff0c;它可以显着提高性能。…