后端——Spring注入笔记

26 篇文章 0 订阅

一. xml文件(经常改动的对象)

1.1.set 设值注入,自动调set方法,类中不能有同名有参构造函数,必须要有set方法,引用类型用ref
    <bean id="mystudent" class="com.zknode.ba01.Student">
        <!--设值注入,自动调set方法,类中不能有同名构造函数-->
        <property name="name" value="张三"></property>
        <property name="age" value="15 "></property>
        <property name="school" ref="school"></property>
    </bean>
1.2 引用类型(ref)的自动注入
byName
    <!--byName属性名和bean的name一致,拿着属性名去找bean-->
    <bean name="student" class="com.zknode.ba04.Student" autowire="byName">
        <property name="name" value="张三"/>
        <property name="age" value="18"/>
    </bean>


输出Student{name='张三', age=18, school=school{add='beijing', name='北京大学'}}
byType
    <!--byType三种同源关系去寻找,bean和class值一样;父子关系;接口和实现类,只能有一个符合条件的bean 负责会报错-->
    <bean name="student2" class="com.zknode.ba04.Student" autowire="byType">
        <property name="name" value="里斯"/>
        <property name="age" value="88"/>
    </bean>

输出 Student{name='里斯', age=88, school=school{add='beijing', name='北京大学'}}
1.3.构造注入,类中有有参构造函数
    <bean id="mystudent" class="com.zknode.ba01.Student">
        <constructor-arg name="age" value="12"></constructor-arg>
        <constructor-arg name="name" value="zangsan"></constructor-arg>
        <constructor-arg name="school" ref="school"></constructor-arg>
    </bean>

除了使用name索引还可以使用id索引

二. 注解配置(大量使用,不经常改动的对象)。通过注解完成java对象创建,属性赋值。

使用注解的步骤:

  • 加入maven的依赖 spring-context ,在你加入spring-context的同时, 间接加入spring-aop的依赖。

  • 使用注解必须使用spring-aop依赖

  • 在类中加入spring的注解(多个不同功能的注解)

    @Component(value = "mystudent")
    public class student {
...

  • 自动注入
    1. 1@Autowired 默认byType
    默认@Autowired(required = true)引用报错中止,@Autowired(required = false)引用报错跳过

    1.2 @Autowired byName
    @Qualifier(“222”)

    2.1 @Resource jdk的 默认byName 之后byType
  • 在spring的配置文件中,加入一个组件扫描器的标签,说明注解在你的项目中的位置
 <context:component-scan base-package="com.zknode.ba01"/>
 ; , 空格可以并列引入
可以只导入父类

学习的注解:

1.@Component
(不是下面三种时候,省略value时,默认类名,小写开头)以下和Component功能差不多,不过以下分层
2.@Respotory
(dao)
3.@Service
(业务事务)
4.@Controller
(控制器)
5.@Value
(属性或者set方法上)
6.@Autowired
(自动注入,byType->byName )
7.@Resource
(自动注入 JDK byName->byType)

三. 其他

3.1 多文件的分配方式:

  1. 按功能模块,一个模块一个配置文件
  2. 按类的功能,数据库相关的配置一个文件配置文件, 做事务的功能一个配置文件, 做service功能的一个配置文件等
  3. spring xml总配置文件引入其他配置文件
<import resource="classpath:ba/spring-student.xml" >

使用通配符
<import resource = "classpath:ba/spring-*.xml">

3.2 ${}加载配置文件properties文件进行解耦合

  • xml记得引入properties文件
Spring MVC是Spring框架的一个核心模块,它是一个基于Java的Web框架,实现了MVC模式,并继承了Servlet API。它可以感知用户在浏览器中输入的URL,并根据配置的路由规则来处理请求。学习Spring MVC的原因是因为现在绝大部分的Java项目都是基于Spring或者Spring Boot的,而Spring MVC作为Spring框架的核心模块,是开发Java后端项目的重要组成部分。此外,Spring框架及其相关的框架(如Spring Boot、Mybatis等)在Java开发中被广泛应用,具有很好的生态系统和社区支持。因此,学习Spring MVC可以帮助开发者更好地理解和应用Java后端开发的相关技术。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [【Java】Spring MVC程序开发](https://blog.csdn.net/qq_63474430/article/details/129338488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Java后端开发需要学什么](https://blog.csdn.net/m0_70565884/article/details/124593218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkFun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值