从 springapplication 认识 spring 应用启动过程-编程思维
一、SpringApplication 是什么? Spring 应用的启动类。 二、SpringApplication 执行了什么? 创建 ApplicationContext 实例 ApplicationContext 就是我们所说的容器实例。 注册 CommandLinePropertySource CommandLinePropertySource 的作用是将命令行参数输出为 Sp
morethink program
一、SpringApplication 是什么? Spring 应用的启动类。 二、SpringApplication 执行了什么? 创建 ApplicationContext 实例 ApplicationContext 就是我们所说的容器实例。 注册 CommandLinePropertySource CommandLinePropertySource 的作用是将命令行参数输出为 Sp
一、什么是自动配置 bean 自动配置类通过添加 @AutoConfiguration 注解实现。 因为 @AutoConfiguration 注解本身是以 @Configuration 注解的,所以自动配置类可以算是一个标准的基于 @Configuration 注解的类。 @Conditional 注解可以用于声明自动配置启用条件,通常,我们可以使用 @ConditionalOnClass、
此篇博客不做商业用途,仅用于记录学习笔记,很多代码出自别人的资料。 什么是Spring? Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层 SpringMVC和持久层 Spring JDBCTem
通过前面的文章可以看到,spring框架完成了一个很重要的解耦操作,把数据放到了容器里面,对数据访问层和业务逻辑层和强耦合进行了解耦。但是随之而来的一个问题是:我们使用配置文件的方式来配置的话,会额外做一些配置文件的书写,这样我们的代码量会增多,框架的意义是简化开发。所以spring提供了相应简单的注解方式将数据添加到IOC容器里面。 原始注解: @Component 使用在类上用于实例化
我们程序中的上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件),这样的弊端是配置文件加载多次,应用上下文创建多次。 在web项目中,可以使用ServletContextListener监听web应
一、ioC 容器和 Bean介绍 IoC(Inversion of Control )也被称之为 DI(dependency injection),名称侧重点略有不同。 所谓控制翻转即对象通过构造函数参数、工厂方法参数或者属性字段设置来定义依赖,然后容器在创建 bean 的时候注入依赖。这个过程和对象自己管理依赖是完全相反的。 org.springframework.beans 和 or
一、什么是AOP? AOP 即 Aspect-oriented Programming,Aspect 切面,什么是切面,就是一条大路上的收费站,检查站,首先它是一个统一的功能单元,或是收费、或是检查,其次它可以决定对谁收费,对谁收多少费,对谁检查。与之相对的是 OOP 即 Object-oriented Programming,Object 对象,对象就是大路上的一辆辆汽车,每辆汽车都有一套完成
1.开发环境 IDEA版本: 2022.1.4 Maven版本:3.8.6 Spring版本:6.0.2 2.案例分析 2.1 自定义Man类 2.2 自定义Company类 2.3 自定义CompanyTest类 2.4 分析图 3.案例改进 此时Company类和Man类之间的耦合度比较高,若希望雇佣其它类取代Man类则需要修改Company类,这种修改违背了开闭原则
显示勾选的购物车数据 1.持久层 1.规划sql语句 用户在购物车列表页面通过随机勾选相关的商品,在点击结算俺就后,跳转到结算页面,在这个页面需要展示用户在上个页面说勾选的购物车对应的数据。列表的展示,而展示的内容还是在购物车里 SELECT cid, uid, pid, t_cart.price, t_cart.num, t_product.title, t_product.pr
订单系统 1.持久层 1.将数据插入到订单表中 insert into t_order(oid除外所有的字段) values (字段的值) 2.将数据还要插入订单项的表中 insert into t_order_item(oid除外所有的字段) values (字段的值) 2.接口和抽象方法 创建一个orderMapper /**
设置默认的收货地址 持久层 1.sql语句的 规划 1.检测当前用户想设置为默认收货地址的这条数据是否存在 select * from t_address where aid = ? 2.在修改用户的收货默认地址之前,先将所有的收货地址设置为非默认 updata t_address set is_default = 0 where uid = #{uid} 3.将用户当前选择的这条记录设置为
删除收货地址 1.持久层 1.1规划sql语句 1.在删除之前需要判断该数据是否存在,判断该条数据的归属是否是当前的用户,不需要重复开发 2.执行删除收货地址 delete from t_address where aid =? 3.如果用户删除逇是默认收货地址,将剩下的地址的某一条设置为默认的收货地址。规则可以自定义:最新修改的收货地址设置为默认的收货地址(modified_time的字
购物车模块 加入购物车 持久层 1.规划持久层的语句 1.向购物车表中插入数据 insert into t_cart (aid除外) values (值列表) 2.当当前的商品已经在购物车中存在,则直接更新 number的数量即可 update t_cart set number = #{number} where cid= #{cid} 3.查询当前cid是否存在 select * fr
展示购物车列表 1.持久层 1.规划sql语句 #多表查询如果字段不重复则不需要要声明字段属于那种表 select cid,uid,pid,t_cart.price,t_cart.num,t_product.title,t_product.imgae,t_product.price as realprice from t_cart left join t_product on t_cart.
增加or减少购物车商品数量 持久层 1.sql规划 1.增加之前先判断是否存在这个数据 select * from t_cart where cid = #{cid} 增加购物车数量,就是update操作 update t_cart set num=#{num},modified_time =? modified_user =? where cid = #{cid} 2.接口与抽象方法
上传头像的功能 持久层 1.sql语句的规划 avatar varchar(50) str - 字节流 将对象文件保存在操作系统上,然后在把这个文件的路径个记录下来,保存在avatar中,因为相比于字符流会更加的方便,将如果要打开这个文件可以依据这个路径去找到合格文件。在数据中只需要保存这个文件饿路径即可。将静态资源资源(图片、音频)放在某台电脑上, 在把这个电脑作为一台单独的服务器使用 对
新增收货地址 持久层 1.新增 规划sql语句 insert into t_adress(字段列表) values (值列表) 2.一个用户的收货地址规定最多只能由20条数据对应,在插入用户数据之前先做查询操作。收货地址逻辑控制当面的一个异常(如果一个在添加收货地址的时候已经有20个收货地址了) select count(*) from t_address where uid = #{
xml注解:注解和xml混合使用 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cont
创建 maven工程 在pom.xml引入依赖: <dependencies> <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc&