自学内容网 自学内容网

ssm模糊知识点整合

一、参数绑定常用注解

  1. @RequestParam:用于将请求参数绑定到你的方法参数上。

  2. @PathVariable:用于将路径变量绑定到你的方法参数上。

  3. @RequestBody:用于将请求主体绑定到你的方法参数上,通常用于绑定POST请求的JSON或XML数据。

  4. @RequestHeader:用于将请求头部信息绑定到你的方法参数上。

  5. @CookieValue:用于将Cookie值绑定到你的方法参数上。

主要的区别在于:

  • 绑定的位置不同:@RequestParam 是请求参数,@PathVariable 是路径变量,@RequestBody 是请求体

二、mybatis关联查询

1、resultType

作用:将查询结果按照SQL列名与实体类属性名一致性映射到实体类对象中。 场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可 直接使用resultType将每一条记录映射到实体类中,在前端页面遍历list(list中是实体类)即可。

2、resultMap

使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。

3、association

作用:将关联查询信息映射到一个实体类对象中。 场合:为了方便查询关联信息可以使用association将关联信息映射为当前对象的一个属性,比如:查询 订单以及关联用户信息。

4、collection

作用:将关联查询信息映射到一个list集合中。 场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权 限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的 菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。如果使用resultType无法将查询 结果映射到list集合中。

5、resultMap的继承

resultMap标签可以通过extends属性来继承一个已有的或公共的resultMap,避免重复配置的出现,减 少配置量。

<!-- 父resultMap标签-->
<resultMap id="baseResultMap" type="com.gs.entity.Orders">
    <id column="id" property="id"/>
    <result column="order_number" property="orderNumber"/>
    <result column="total_price" property="totalPrice"/>
    <result column="status" property="status"/>
    <result column="user_id" property="userId"/>
</resultMap>
<!-- 继承父resultMap标签中的配置,避免重复配置 -->
<resultMap id="subResultMap" type="com.gs.entity.Orders" 
extends="baseResultMap">
    <association property="users" javaType="com.gs.entity.Users">
        <id column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="password" property="password"/>
        <result column="realname" property="realname"/>
    </association>
</resultMap>

三、Bean对象生命周期(后续需详细补充)

  1. 实例化(Instantiation): Spring容器通过反射或者工厂方法创建Bean的实例。

  2. 属性赋值(Populate Properties): 为Bean的属性设置值和对其他Bean的引用。

  3. 初始化(Initialization): 如果Bean实现了BeanNameAware, BeanFactoryAware, ApplicationContextAware等接口,会调用对应的方法。然后,如果BeanPostProcessor被注册,相应的postProcessBeforeInitialization()方法会被调用。最后,如果Bean实现了InitializingBean接口,其afterPropertiesSet()方法会被调用;或者,如果Bean使用init-method属性声明了初始化方法,这个方法也会被调用。

  4. 使用(In use by application): Bean现在可以被应用程序使用了。

  5. 销毁(Destruction): 当容器关闭时,如果Bean实现了DisposableBean接口,其destroy()方法会被调用;或者,如果Bean使用destroy-method属性声明了销毁方法,这个方法也会被调用。

四、spring boot自动装配(后续需详细补充)


(一)、核心注解


1.  @SpringBootApplication :这是一个组合注解,包含了  @Configuration 、 @EnableAutoConfiguration  和  @ComponentScan 。其中  @EnableAutoConfiguration  是实现自动装配的关键注解。

springboot是一个脚手架工具,约定大于配置。我们只需要按照springboot的规范来开发,就能减少很多配置,当需要开发web项目的时候

@SpringBootApplication(有三个子注解,分比为1、2、3)
        1:@SpringBootConfiguration    (有一个子注解:Configuaration)
                1.1:@Configuaration    (有一个子注解:Component)
                        1.1.1:@Component (作用:就是启动类声明为bean)
        2:@EnableAutoConfiguration    (开启自动注入:有两个子注解)
                2.1:@AutoConfigurationPackage  (自动配置包:有一个子注解,import)
                        2.1.1:@Import({Registrar.class})      (没有子注解)
                2.2:@Import({AutoConfigurationImportSelector.class})    (没有子注解)
        3:@ComponentScan  (组件扫描:没有子注解,作用:包扫描项目包路径)
在这三个注解中,第一和第三都没有太大的意思,所以我们主要看第二个注解就好了。在第二个注解中使用了两个@import注解。就是这两个注解解释了自动装配的含义

(二)、自动配置类


Spring Boot 在启动时会扫描类路径下的  META-INF/spring.factories  文件,这个文件中定义了大量的自动配置类。自动配置类通常以  XXXAutoConfiguration  的形式命名。
例如,当引入了 Spring Boot Web 模块依赖时,会自动加载  SpringWebMvcAutoConfiguration  自动配置类,它会根据类路径下是否存在相关的类(如  DispatcherServlet )来决定是否进行 Web 相关的配置,如配置视图解析器、静态资源处理等。


三、条件装配


自动配置类通常使用  @Conditional  注解来进行条件装配。这些条件可以基于类路径上是否存在特定的类、系统属性是否满足特定条件等。
例如, @ConditionalOnClass  注解表示只有当类路径上存在特定的类时才会进行自动配置。


四、导入其他配置


自动配置类还可以通过  @Import  注解导入其他配置类或组件,进一步扩展自动装配的功能。
总之,Spring Boot 的自动装配原理是通过扫描特定的配置文件,加载自动配置类,并根据条件进行装配,从而实现了快速、便捷的开发体验,减少了大量的手动配置工作。


原文地址:https://blog.csdn.net/qq_69331283/article/details/142522289

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!