当前位置: 首页 > ds >正文

ssm学习笔记(尚硅谷) day1

创建新项目

在这里插入图片描述

maven的聚合

1. 标记父类项目

在这里插入图片描述
标签<packaging>pom</packaging>表示将该项目标记为父类项目,必须添加。

以下是标签<packing>的常见取值
在这里插入图片描述
groupId在pom.xml中,可以从pom.xml直接修改。

2. 通过<modules>添加子项目。

在这里插入图片描述
在这里插入图片描述

导入第三方类

在类上面标注@Import(类名.class)可以导入第三方类,需要注意的是Bean是单实例对象,只写一次就导入进入了,多写并不会重复导入。
在这里插入图片描述

注册组件的各种注释

在这里插入图片描述

@Scope

在这里插入图片描述

@Conditional

在这里插入图片描述
在这里插入图片描述
例子:我创建了一个WindowsCondition对象,
在这里插入图片描述
在某个Bean上面使用@Conditonal注释,表示不是windows系统不能使用
在这里插入图片描述

@AutoWired

如果在UserController中不加@AutoWired注释
在这里插入图片描述
在这里插入图片描述
通过容器获取到的UserController里面的UserService是空的

在这里插入图片描述
添加之后不为空
在这里插入图片描述

可能会出现的问题
在这里插入图片描述
@Qualifier 可以精确指定要使用的组件名

@Resource

和@Autowired都可以自动注入
区别 @Resource具有更强的通用性,但不支持注入为空,@Autowired可以把参数required改为false

@Aware

在这里插入图片描述
说人话就是可以调用底层的东西放到代码上。箭头指的是底层的相关参数,可以通过注入放到内部定义的组件中。
在这里插入图片描述

@Value

如果想在以下属性类的属性注入的时候,用@Autowired无法注入,就需要用到Value了
在这里插入图片描述
在这里插入图片描述
以下是取不到的默认值,中间冒号隔开
在这里插入图片描述

@PropertySource

引用properties来给参数赋值
需要注意的是以下写法不要随意添加空格(应为cat.age=123),如下图,age就会出现错误,应赋值12
在这里插入图片描述
在这里插入图片描述

@Profile (多环境)

激活环境,通过坏境选择对应的Bean组件,在applicationproperties中配置相对应的环境。
在这里插入图片描述
在这里插入图片描述

ClassPathXMLApplicationContext

在这里插入图片描述
就是用xml文件配置bean
在这里插入图片描述
在resources下创建ioc.xml,配置如下
在这里插入图片描述
最后两行一个是bean扫描,把文件下的bean扫描进去,一个是引入外部文件。需要注意的是,默认情况下application.properties是不被引用的。

生命周期

initMethod destroyMethod

在这里插入图片描述
在这里插入图片描述
User部分的代码
user板块
UserConfig的代码
在这里插入图片描述

InitializingBean, DisposableBean

这是两个接口
在这里插入图片描述
在这里插入图片描述
经过执行后发现
在这里插入图片描述
在这里插入图片描述

@PostConstruct,@PreDestroy

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源代码
User.java

package com.atguigu.sping01ioc.bean;import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import lombok.Data;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;@Data
public class User implements InitializingBean, DisposableBean {private String username;private String password;private Car car;@Autowiredvoid setCar(Car car) {this.car = car;System.out.println("User 自动注入");}public User(){System.out.println("User 构造器");}@PostConstructpublic void postConstruct(){System.out.println(" @PostConstruct");}@PreDestroypublic void preDestroy(){System.out.println("@PreDestroy");}public void initUser(){System.out.println("User@Bean初始化");}public void destroyUser(){System.out.println("User@Bean销毁");}@Overridepublic void destroy() throws Exception {System.out.println("Initializing Bean == destroy");}@Overridepublic void afterPropertiesSet() throws Exception {System.out.println("Initializing Bean == afterPropertiesSet");}
}

UserConfig.java

package com.atguigu.sping01ioc.config;import com.atguigu.sping01ioc.bean.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class UserConfig {@Bean(initMethod = "initUser",destroyMethod = "destroyUser")public User user(){return new User();}
}
http://www.xdnf.cn/news/9887.html

相关文章:

  • 生成式人工智能:重构软件开发的范式革命与未来生态
  • 预处理,咕咕咕
  • Cesium 展示——获取鼠标移动、点击位置的几种方法
  • 第四章、自平衡控制
  • 【Ubuntu远程桌面】
  • .NET WinForm图像识别二维码/条形码
  • 从零开始的数据结构教程(六) 贪心算法
  • 超声波换能器 换能原理
  • 「卫星百科」“绿色守卫”高分六号
  • MVCC 原理与并发控制实现
  • 【Pandas】pandas DataFrame equals
  • STP配置
  • 基于Java,SpringBoot,Vue,UniAPP医院预约挂号买药就诊病例微信小程序系统设计
  • 代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
  • Java中如何枚举正则表达式捕获组的名字
  • RabbitMQ项目实战
  • 【机器学习基础】机器学习入门核心算法:随机森林(Random Forest)
  • 华为OD机试真题——AI面板识别(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 高效开发,升级软件,硬件也要专业
  • 大数据治理体系构建与实践路径
  • MYSQL 使用心得
  • SIEMENS西门子6FC特价系列型号6FC5303-1AF02-8BP0
  • AI问答-Vue3+TS:reactive创建一个响应式数组,用一个新的数组对象来替换它,同时保持响应性
  • Java中的设计模式实战:单例、工厂、策略模式的最佳实践
  • NumPy 2.x 完全指南【二十二】数组标量
  • Socket网络编程
  • Vue3 + Element Plus 实现树形结构的“单选 + 只选叶子节点 + 默认选中第一个子节点”
  • 微内核与宏内核有什么区别(GAI)
  • laya3的2d相机与2d区域
  • 2025.05.28-华为暑期实习第二题-200分