Spring笔记

1、Spring介绍

(1)、Spring是一个主流的Java Web 开发框架

(2)、Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。

(3)、以 IOC(Inverse of Control,控制反转;依赖注入DI (Dependency Injection))和 AOP(Aspect Oriented Programming,面向切面编程)为内核,使用基本的 JavaBean 完成以前只可能由 EJB 完成的工作,取代了 EJB 臃肿和低效的开发模式。

IOC即“控制反转”,不是什么技术,而是一种设计思想,Ioc意味着将你设计好的对象交给容器控制,就是由spring来负责控制对象的生命周期和对象间的关系。IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(依赖注入)来实现的

Spring可以说是一个管理bean的容器,也可以说是包括很多开源项目的总称,spring mvc、spring boot只是其中一个开源项目。

springboot项目是从远程服务器进行创建的。

2、Mapper.xml

id:是dao层接口的方法名字, ​ parameterType:dao层方法的参数类型 ​ resultType:是返回的结果集类型,取决于查询后的结果(dao层方法前面的返回值),

一般直接单表查询 ​ 可以直接使用mybatis-config.xml的简称 ​ resultMap:自定义返回值结果集 一般多表联查使用

标签 结果集映射(配置实体类属性与数据库字段关联关系)-->

    
    
        
        
        
        
    

代码自动补全快捷键:Ctrl+Alt+V

3、注解作用与原理

@responseBody作用:

@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需要注意,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。

@ResponseBody会把该方法的返回值转成json格式,通过响应流的方式返回给浏览器

@Controller

@Controller把当前JavaBean交给Spring管理 控制反转

@RequestMapping

@RequestMapping("/User") 把类映射到指定路径上

@Autowire 怎么使用名称来注入

配合 @Qualifier 使用,如下所示:

@Component
public class Test {
    @Autowired
    @Qualifier("userService")
    private UserService userService;
}

4、MyBatis--动态sql(where标签用法)

where标记的作用类似于动态sql中的set标记,他的作用主要是用来简化sql语句中where条件判断的书写的

where标签的作用:如果该标签包含的元素中有返回值,就插入一个where;如果where后面的字符串是以and 和or 开头的,就将他们剔除。

5、Spring中bean标签的属性和值:

id属性:用于指定Bean的名称,在Bean被依赖时使用,在获取Bean时使用等

name属性:用于指定Bean的别名

class属性:用于指定Bean的来源,即创建要创建的Bean的class类(需要全限定名)

init-method属性:用于指定当前Bean的初始化方法,在Bean实例创建好后,首先会调用其指定名称的方法

6、Spring 框架中用到了哪些设计模式?

说几种比较常见的:

  • 工厂设计模式 : Spring使用工厂模式通过 BeanFactoryApplicationContext 创建 bean 对象。

  • 代理设计模式 : Spring AOP 功能的实现。(AOP 面向切面编程)

  • 单例设计模式 : Spring 中的 Bean 默认都是单例的。(面试手写)

  • 适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller

  • 模板方法模式 : Spring 中 jdbcTemplatehibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。

  • 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。

  • 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。<

你可能感兴趣的:(SpringBoot,spring,java,mvc)