尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Spring 全家桶学习笔记

Spring 全家桶学习笔记 | 包含:Spring、SpringMVC、SpringBoot、MyBatisPlus、Maven 高级一、Spring(IOC / DI 基础)1. Spring 核心概念IOC:控制反转,对象的创建权交给外部容器。DI:依赖注入,在容器中建立 bean 与 bean 之间的依赖关系。IOC 容器:Spring 用来存放、管理 bean 的容器。Bean:被 IOC 容器管理的对象。目标:充分解耦。2. 入门案例2.1 IOCxmlbean/ bean/javaApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); BookService bookService = (BookService) ctx.getBean("bookService"); bookService.save();2.2 DIjavapublic class BookServiceImpl implements BookService { private BookDao bookDao; public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } }xmlbean property ref="bookDao"/ /bean3. Bean 基础配置xmlbean scope=""/id:唯一标识class:类全名name:别名,可多个scope:singleton:默认,单例prototype:非单例4. Bean 实例化方式构造方法(常用)静态工厂(了解)实例工厂(了解)FactoryBean(实用)5. Bean 生命周期初始化容器:创建对象执行构造方法属性注入执行初始化方法使用 bean销毁容器:执行销毁方法配置方式:xmlbean init-method="init" destroy-method="destroy"/或实现接口:javaInitializingBean, DisposableBean关闭容器:javactx.close(); ctx.registerShutdownHook();6. DI 依赖注入6.1 setter 注入xmlproperty value=""/ property ref=""/6.2 构造器注入xmlconstructor-arg value=""/ constructor-arg ref=""/ constructor-arg type="" index=""/6.3 自动装配xmlbean autowire="byType"/ bean autowire="byName"/byType:按类型注入,常用byName:按名称注入6.4 集合注入xmlarray list set map props二、Spring(注解开发 / 第三方 Bean / 整合):1. 配置管理第三方 Beanxmlbean property value="com.mysql.jdbc.Driver"/ property value="jdbc:mysql://localhost:3306/spring_db"/ property value="root"/ property value="root"/ /bean2. 加载 properties 文件xmlcontext:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/propertiesjdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/spring_db jdbc.username=root jdbc.password=root使用:xmlproperty value="${jdbc.url}"/3. 核心容器BeanFactory:顶层接口,延迟加载ApplicationContext:核心接口,立即加载常用实现:javaClassPathXmlApplicationContext FileSystemXmlApplicationContext AnnotationConfigApplicationContext获取 Bean:javactx.getBean("bookDao"); ctx.getBean("bookDao", BookDao.class); ctx.getBean(BookDao.class);4. 注解开发定义 Beanjava@Component("bookDao") @Controller @Service @Repository包扫描:xmlcontext:component-scan base-package="com.itheima"/5. 纯注解开发java@Configuration @ComponentScan("com.itheima") public class SpringConfig { }javaApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);6. Bean 作用范围与生命周期注解java@Scope("prototype") @PostConstruct @PreDestroy7. 注解依赖注入java@Autowired @Qualifier("bookDao1") @Value("${name}") @PropertySource("jdbc.properties")8. 注解管理第三方 Beanjava@Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ... return ds; }引入配置类:java@Import(JdbcConfig.class)三、Spring(AOP / 事务)1. AOP 核心概念连接点:程序执行过程中的任意位置,SpringAOP 中理解为方法执行切入点:匹配连接点的式子通知:在切入点处执行的操作通知类:定义通知的类切面:描述通知与切入点的对应关系目标对象:被代理的原始对象代理:对目标对象进行增强后的对象
返回列表