热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring之注解方式实例化Java类

我们知道一个就代表一个对象,如果想创建多个对象,就要使用多个,所以这里有个简便的方法&#x

       我们知道一个就代表一个对象,如果想创建多个对象,就要使用多个,所以这里有个简便的方法:

<context:component-scan base-package&#61;"com.jd">context:component-scan>

       意思是Spring IOC容器扫描com.jd下所有子包内的Java类&#xff0c;如果该类被&#64;Controller(用于控制层&#xff0c;例如servlet)、&#64;Service(用于service层)、&#64;Repository&#xff08;用于DAO层&#xff09;、&#64;Component(基本注解)修饰&#xff0c;则使用无参构造方法创建对象&#xff01;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当启动Tomcat时&#xff0c;先执行静态代码块&#xff0c;再执行非静态代码块&#xff0c;然后执行构造方法&#xff0c;最后才创建对象以及执行其他代码。所以&#xff1a;
在这里插入图片描述

当执行完上述代码后的结果是&#xff1a;
在这里插入图片描述
注意&#xff1a;使用context:component-scan标签需要添加spring-aop-4.3.10.RELEASE.jar包




还有另一个注解是&#64;Autowired&#xff1a;


当Spring创建Student对象时&#xff0c;成员变量有&#64;Autowired修饰的&#xff0c;则Spring自动从IoC容器中获取一个该类型的对象并进行赋值


例子&#xff1a;
在这里插入图片描述
在这里插入图片描述
其中的执行后会创建Date对象&#xff0c;但当执行后也会创建对象&#xff0c;但又不能创建两个Date对象&#xff0c;所以使用&#64;Autowired后&#xff0c;Spring就会自动从IoC容器中获取一个Date类型的对象并进行赋值。
      检验一下&#xff1a;
在这里插入图片描述
结果就是&#xff1a;
在这里插入图片描述
但是当xml文件里没有&#xff0c;只有时&#xff0c;成员变量private Date date;依旧有&#64;Autowired修饰&#xff0c;则就会报错&#xff0c;因为IoC容器里没有Date类型的对象。所以需要在&#64;Autowired后面再加上(required &#61; false)&#xff0c;即&#64;Autowired(required &#61; false)&#xff0c;此时就不会报错了&#xff0c;即IoC容器里有时就直接拿过来进行赋值&#xff0c;没有时就自动创建对象


推荐阅读
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 标题: ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因
    本文介绍了解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因。其中包括修改包名、解决service name重复、处理jar包冲突和添加maven依赖等解决方案。同时推荐了一个人工智能学习网站,该网站内容通俗易懂,风趣幽默,值得一看。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 五、RabbitMQ Java Client基本使用详解
    JavaClient的5.x版本系列需要JDK8,用于编译和运行。在Android上,仅支持Android7.0或更高版本。4.x版本系列支持7.0之前 ... [详细]
author-avatar
缘zhi韵_297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有