springbboot随笔

无效的源发行版问题

springbboot随笔_第1张图片
springbboot随笔_第2张图片
springbboot随笔_第3张图片
springbboot随笔_第4张图片
springbboot随笔_第5张图片

springbboot随笔_第6张图片
springbboot随笔_第7张图片
springbboot随笔_第8张图片
springbboot随笔_第9张图片
改springboot版本



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.6------------------------------------------------这里
         
    
    com.it
    springbootinit
    0.0.1-SNAPSHOT
    springbootinit
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



文件执行顺序问题

在这里插入图片描述

properties>yml>yaml
先生效大的

格式问题

springbboot随笔_第10张图片
大小写敏感
缩进表示层级关系(用空格不用tab,空格数目不重要,但是必须相同)
#是注释

springbboot随笔_第11张图片

读取配置信息的三种方法

@Value
Environment
@ConfigurationProperties(prefix = “person”)//这里指定注入的确定地方

springboot 的xml文件中针对sql语句的具体写法

/*使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中
@Mapper注解是由Mybatis框架中定义的一个描述数据层接口的注解,注解往往起到的都是一个描述性作用,用于告诉sprigng框架此接口的实现类由Mybatis负责创建,
并将其实现类对象存储到spring容器中。*/
@Mapper
@Repository
public interface UserMapper {
    //@Select("select * from t_user")
    public List<User> findALL();
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace命名空间是每一个mapper的唯一标识,也是XML文件和Java接口类连接的标识-->
<mapper namespace="com.example.demo.mapper.UserMapper">
    <!--id:对应接口的方法名,即 findALL,通过它 MyBatis 才能将二者对应起来
        resultType:对应 SQL 语句的返回类型,与接口方法的返回值相同,有时会用到resultMap测试类添加代码调用XML的SQL-->
    <select id="findALL" resultType="com.example.demo.domain.User">
        select *
        from t_user;
    </select>
</mapper>

当尝试再sql中加入一些参数时看注解使用方式和参数传递及#{}和${}

Mybatis 在 insert 插入操作后返回主键 id
方法一

配置 useGeneratedKeys 和 keyProperty

useGeneratedKeys="true" 表示给主键设置自增长。
keyProperty="sid" 表示将自增长后的 Id 赋值给实体类中的 sid 字段。

    insert into student(name, age)
    VALUES (#{name} , #{age})

方法二
在 insert 标签中编写 selectKey 标签


    insert into student(name, age)
    VALUES (#{name} , #{age})

    
        SELECT LAST_INSERT_ID()
    

8
< insert> 标签中没有 resultType 属性,但是 < selectKey> 标签是有的。
order=“AFTER” 表示先执行插入语句,之后再执行查询语句。
keyProperty=“sid” 表示将自增长后的 Id 赋值给实体类中的 sid 字段。
SELECT LAST_INSERT_ID() 表示 MySQL 语法中查询出刚刚插入的记录自增长 Id。
方法三

这种方法需要在一定条件下才能使用,就是 name(也可以是其他唯一字段如订单号) 需要是 unique,不可重复的。


    insert into student(name, age)
    VALUES (#{name} , #{age})

    
        select sid from student where name = #{name}
    

原理和上面查id是一样的,就是在执行插入语句之后,再执行查询语句,将 sid 查出来

ioc

基于xml方式注入属性。。DI依赖注入。就是注入属性
第一种构造方式。。使用set方法进行注入
第二种构造方式。。使用有参数构造进行注入
p名称空间注入,简化xml配置方式,添加p名称在配置文件中,在bean标签里进行操作
注入外部bean和内部bean和级联赋值和集合
bean默认单实例。可以用singleton属性设置为prototype改成多实例。单实例在加载配置文件时创建对象。多实例在调用getbean方法时进行创建对象。

ioc。控制反转。吧创建过程交给spring进行管理
aop。面相切面。不修改源码进行功能增强
底层实现:有接口情况:使用jdk动态代理:实现类带对象
没有接口情况:使用CGLIB动态代理:子类带对象
术语:连接点:一个类中可以被增强的方法就叫连接点
切入点:实际被增强的方法
通知(增强):实际增强的逻辑部分(增加的业务逻辑)(前置通知,后置通知,环绕通知,异常通知,最终通知)
切面:吧通知应用到切入点的过程

spring boot bean 的生命周期:创建前准备,创建实例,依赖注入,容器缓存,销毁实例

springbboot随笔_第12张图片

请求--tomcot--filter--servlet--interceptor--controller
spring拦截器:aop的一种具体应用,可以应用在web,application,swing中,基于反射实现(登录判断,权限判断,日志)
serclet过滤器:依赖tomcat,只能在web中应用,基于过滤器applicationfilterchain实现(字符编码设计,响应数据压缩)

collection:接口存储一组不唯一无序的对象
list:接口存储一组不唯一,有序的对象(数组)
arraylist:内存中分配了连续的空间,实现长度可变的数组,遍历元素和随机访问效率高,添加和删除效率低,俺内容查询效率低(数组)
linkedlist:双向链表存储方式,遍历和随机访问效率低,插入删除头尾数据效率高
set:接口存储一组唯一无序的对象
hashset:基于 HashMap 来实现的,是一个不允许有重复元素的集合。允许有 null 值,是无序的,不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。
linkhashset:
treeset
map:存储键值对,键唯一无序,值不唯一无序
hashmap:是一个散列表,它存储的内容是键值对(key-value)映射。最多允许一条记录的键为 null,不支持线程同步。是无序的
linkhashmap
treemap

springbboot随笔_第13张图片

springboot接受数据

springbboot随笔_第14张图片
springbboot随笔_第15张图片
springbboot随笔_第16张图片
2 JSON格式的数据
springbboot随笔_第17张图片

你可能感兴趣的:(笔记,基础知识,mybatis,java,spring,boot)