首页 > 其他分享 >spring快速入门2

spring快速入门2

时间:2024-03-31 10:32:02浏览次数:22  
标签:依赖 入门 spring Bean 使用 注解 注入 快速 setter

一、注解开发

1.Spring_注入问题


[1]. 强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现,强制依赖指对象在创建的过程中必须要注入指定的参数

[2]. 可选依赖使用setter注入进行,灵活性强,可选依赖指对象在创建过程中注入的参数可有可无

[3]. Spring框架倡导使用构造器,第三方框架内部大多数采用构造器注入的形式进行数据初始化,相 对严谨

[4]. 如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选 依赖的注入

[5]. 实际开发过程中还要根据实际情况分析,如果受控对象没有提供setter方法就必须使用构造器注 入

[6]. 自己开发的模块推荐使用setter注入

1.setter引用类型注入(在实现类中提供setter方法

<bean id="" class="">
<property name="" ref=""/>
</bean>


 2.setter简单类型注入(在实现类中提供setter方法

<bean id="" class="">
<property name="" value=""/>
</bean>


3.构造器注入引用类型(在实现类中提供构造方法

<bean id="" class="">
<constructor-arg name="" index="" type="" ref=""/>
</bean>


4.依赖自动装配(提供setter方法
(1.按类型,类型匹配唯一

<bean class="dao.impl.BookDaoImpl"/>
<!--autowire属性:开启自动装配,通常使用按类型装配-->
<bean id="bookService" class="service.impl.BookServiceImpl"
autowire="byType"/>


(2.按名称,具有指定名称的bean

<bean class="dao.impl.BookDaoImpl"/>
<!--autowire属性:开启自动装配,通常使用按类型装配-->
<bean id="bookService" class="service.impl.BookServiceImpl"
autowire="byName"/>


5.集合注入
(1.array注入

<bean id="" class="">
<property name="array">
<array>
<value>...</value>
</array>
</property>
</bean>

2.Spring_IOC/DI注解开发

  • Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。

  • Spring原始注解主要是替代Bean的配置

注解说明
@Component使用在类上用于实例化Bean
@Controller使用在web层类上用于实例化Bean
@Service使用在service层类上用于实例化Bean
@Repository使用在dao层类上用于实例化Bean
@Autowired使用在字段上用于根据类型依赖注入
@Qualifier结合@Autowired一起使用用于根据名称进行依赖注入
@Resource相当于@Autowired+@Qualifier,按照名称进行注入
@Value注入普通属性
@Scope标注Bean的作用范围
@PostConstruct使用在方法上标注该方法是Bean的初始化方法
@PreDestroy使用在方法上标注该方法是Bean的销毁方法

注意:

使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法。

<!--注解的组件扫描-->
<context:component-scan base-package="com.itheima"></context:component-scan>

标签:依赖,入门,spring,Bean,使用,注解,注入,快速,setter
From: https://blog.csdn.net/2301_80152021/article/details/137193762

相关文章

  • java毕业设计社团物品租赁小程序(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义一、选题背景:随着校园文化的繁荣和学生社团活动的增多,各类社团对于特定物品的需求日益增长。这些物品包括活动器材、会议设备、表演服装等,购买成本高且使用频率不......
  • java毕业设计汽车服务系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的进步和汽车产业的迅猛发展,汽车行业的竞争已经从单纯的价格竞争逐渐转向服务竞争。消费者对汽车服务的需求日益增长,不仅关注汽车的性能、外观和......
  • java毕业设计社团管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着高校教育的不断发展,学生社团作为校园文化的重要组成部分,承担着丰富学生课余生活、培养学生兴趣爱好、提升学生实践能力的重要职能。然而,传统的社团管......
  • java毕业设计实验室资源管理(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义一、选题背景:在高等教育和科研机构中,实验室是进行教学和科学研究的重要场所。一个现代化的实验室通常拥有大量昂贵的设备、仪器和材料。如何有效地管理这些资源,确......
  • java毕业设计青少年视力筛查系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今社会,随着科技的发展和生活节奏的加快,青少年的视力健康问题日益凸显。长时间使用电子产品、不合理的阅读习惯以及缺乏户外活动等因素导致青少年近视......
  • java毕业设计上门医疗服务小程序(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人口老龄化的加剧,人们对医疗服务的需求日益增长,特别是对于便捷、高效的上门医疗服务。传统的医疗服务模式要求患者亲自前往医院或诊所就......
  • java毕业设计汽车租赁系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着共享经济的兴起和汽车产业的发展,汽车租赁作为一种新兴的出行方式逐渐受到人们的欢迎。传统的汽车租赁业务多依赖于线下门店操作,顾客需要到店选车、签......
  • java毕业设计天勤人力资源管理(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义一、选题背景:在当今竞争激烈的商业环境中,人力资源管理(HRM)对于组织的成功至关重要。有效的HRM不仅能够提高员工的工作效率和满意度,而且可以促进企业的整体发展战......
  • java毕业设计数字家谱管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义一、选题背景:在快速变化的社会中,人们越来越意识到家族历史和文化传承的重要性。家谱作为记录家族血脉和历史的重要文献,承载着丰富的文化价值和历史信息。然而,传统......
  • 中间件 ZK分布式专题与Dubbo微服务入门 6-5 同步异步删除zk节点
    0课程地址https://coding.imooc.com/lesson/201.html#mid=12721 1重点关注1.1本节内容javaapi客户端删除节点,包含同步修改和异步修改,只做了异步,同步不通用(因为没有回调函数,不知道是否删除成功)也可以参照视频看下 1.2javaapi删除节点......