框架总结(华清远见)

框架总结(华清远见)

spring框架

特点

IOC:
  1. Inversion of Control (IoC) : 控制反转 , spring框架创建对象,管理对象,以及管理对象之 间的依赖关系。
  2. dependency injection (DI) :依赖注入 , 通过构造函数,或set方法, 给对象的属性赋值。 IoC是通过DI来实现的。
  3. bean: java类型 , 由spring框架创建的对象,就被称为bean . (pojo: 纯java类(私有的属 性,公开的get/set方法这种类。))
  4. Aspect-Oriented Programming (AOP): 面向切面编程 , 对比OOP(面向对象编程)

框架实现了new操作

 Student stu = new Student();

lombok可以帮助开发者 自动生成实体类相关的方法

使用前需要安装插件:Lombok

	<!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>

实体类上加@Data注解

@AllArgConstructor 有参构造

@NoArgConstructor 无参构造

实体类中所有的成员变量 类型建议使用包装类

创建

1、创建工程,导入依赖

	<!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>

在resource路径下创建spring.xml文件

<bean id="student" class="com.nuc.gjq.entity.Student"></bean>

Ioc容器通过读取spring.xml配置文件,加载bean标签来创建队形

调用API获取Ioc容器已经创建的对象

//Ioc容器创建对象
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
Student stu = (Student)ac.getBean("student");
System.out.println(stu);

2.IoC容器创建bean属性注入的两种方式
setter注入

<bean id="student" class="com.nuc.gjq.entity.Student"></bean>

给成员变量赋值

<bean id="student" class="com.nuc.gjq.entity.Student">
	<property name="id" value="1"></property>
    <property name="name" value="张三"></property>
    <property name="age" value="23"></property>
</bean>

构造函数注入,实体类中有三个参数的构造函数

<bean id="student" class="com.nuc.gjq.entity.Student">
	<constructor-arg name="id" value="2"></constructor-arg>
    <constructor-arg name="name" value="李四"></constructor-arg>
    <constructor-arg name="id" value="18"></constructor-arg>
</bean>

可以没有name,IoC会通过(id,name,age)顺序给参数赋值,也可以用index

<bean id="student" class="com.nuc.gjq.entity.Student">
	<constructor-arg index="0" value="2"></constructor-arg>
    <constructor-arg index="1" value="李四"></constructor-arg>
    <constructor-arg index="2" value="18"></constructor-arg>
</bean>

注解注入

<context:component-scan base-package="com.nuc.gjq.*"></context:component-scan>

spring中的bean

  • bean是根据scope来生成,表示bean的作用域, scope有4中类型:
  • singleton,单例模式,表示通过spring容器获取的对象是唯一的,默认的
  • prototype,原型模式,表示通过spring容器获取的对象是不同的
  • request,请求,表示在一次HTTP请求内有效
  • session,会话,表示在一个用户会话内有效
  • request,session适用于Web项目

bean的autowire属性

autowire:自动装配, 为了减少构造器函数初始化对象和set注入初始化对象, 可以使用autowire , 让spring框架的容器对象,自动匹配容器中的其他bean对象,然后给bean进行初始化。

spring容器创建对象的注解

1、@Component : 在类前面添加这个注解,spring框架,看到这个注解,就会在spring容器中创建 对象。

2、@Configuration:在类前这个注解,spring框架,看到这个注解,就会在spring容器中创建对象 。

3、@Bean:一般在方法前面添加这个注解,spring框架会在容器中创建这个对象。

4、在程序中添加注解@Component,@Controller,@Mapper,@Service,实体类在字段上加@Value

spring MVC框架

主要特点:三层架构

M-model : 实体类, dao , service ,统称为model.

V-View : 界面,展示数据

C-Controller :控制层, 调用业务层,转发到对应的view.

SpringMVC开发步骤

1、新建项目。
2、修改目录
3、修改pom.xml文件,添加各类依赖。
4、添加springmvc配置文件,指定包扫描,添加视图解析器。
5、删除web.xml文件,新建web.xml文件
6、在web.xml文件中注册springmvc框架。
7、删除index.jsp页面,并新建,发送请求给服务器。
8、开发控制器(Servlet),它是一个普通类。
9、添加tomcat进行测试功能。

@RequestMapping详解:

此注解就是来映射服务器访问的路径
1、此注解可加在方法上,是为此方法注册一个可以访问的名称
2、此注解可以加在类上,相当于包名
3、此注解可区分get请求和post请求

Ajax Json交互

Json是⼀种与语⾔⽆关的数据交互格式,就是⼀种字符串,只是⽤特殊符号{}内表示对象、[]内表示数组、""内是属性或值、:表示后者是前者的值。

{“name”: “Michael”}可以理解为是⼀个包含name为Michael的对象

[{“name”: “Michael”},{“name”: “Jerry”}]就表示包含两个对象的数组

前端到后台:前端ajax发送json格式字符串,后台直接接收为pojo参数,使⽤注解@RequstBody

后台到前端:后台直接返回pojo对象,前端直接接收为json对象或者字符串,使⽤注解@ResponseBody,此注解不走视图解析器,而是直接将数据写入流中。

过滤器(Filter):

对Request请求起到过滤的作⽤,作⽤在Servlet之前,如果url-pattern配置为/*可以对所有的资源访问(servlet、js/css静态资源等)进⾏过滤处理

监听器(Listener):

实现了javax.servlet.ServletContextListener 接⼝的服务器端组件,它随Web应⽤的启动⽽启动,只初始化⼀次,然后会⼀直运⾏监视,随Web应⽤的停⽌⽽销毁,做一些初始化工作以及监听特定事件对其处理,比如从A方法进入B方法,A方法需要知道B方法执行完继续进行下一步,那么A方法就可以监听B方法的运行情况。

拦截器(Interceptor):

拦截访问的控制器⽅法(Handler),一个拦截器拦截三次。

  1. 在Handler业务逻辑执⾏之前拦截⼀次

  2. 在Handler逻辑执⾏完毕但未跳转⻚⾯之前拦截⼀次

  3. 在跳转⻚⾯之后拦截⼀次

Mybatis 框架

MyBatis框架搭建的步骤
  1. java项目中创建持久层接口
  2. resource项目中创建映射文件
  3. 将映射文件注册到SqlMapConfig.xml文件中
resultMap的使用

如果实体类的属性和表的字段名不一致,可以使用resultMap 设置实体类的属性和表的字段的对应关 系。

MyBatis使用${}绑定参数

绑定参数相当于 J D B C 里边的 S t a t e m e n t 对象,是通过字符串拼接实现的绑定,所以 {}绑定参数相当于JDBC里边的Statement对象,是通过字符串拼接实现的绑定,所以 绑定参数相当于JDBC里边的Statement对象,是通过字符串拼接实现的绑定,所以{}绑定参数会出现sql注入的问题。

Map传参

使用Map作为传递参数的载体,在SQL语句中绑定参数时使用Map的Key作为参数名即可。

优化测试类
利用Junit的前置后置方法@Before和@After注解简化代码,优化测试类代码

优化过后我们会就可以将以前代码中的这些对象删除了,应为junit在启动的时候会自动调用@Before修饰的方法,清理了过后我们会发现整段代码都干净了很多

Mybatis-Plus 框架

mybtis-plus是个mybatis的增强工具,在mybatis的基础上只做增强不做改变,为简化开发,提高效率而生。

  • 对mybatis只做增强不做改变,引入他不会对现有工程产生影响
  • 只需要简单的配置即可快速进行单表CRUD操作,从而节省大量的时间
  • 代码生成,自动分页,逻辑删除,自动填充功能等一应俱全

@Mapper与@MapperScan(“包名”)区别

  • @MapperScan(“包名”):扫描指定包下的mapper接口,将该接口的代理类交给spring容器来保存
  • @Mapper:将该接口的代理类交给spring容器来保存
  • @Mapper用在指定接口上,@MapperScan(“对应接口所在包名”)用在启动类或配置文件上

spring boot框架

创建Spring Boot 项目

使用 Spring Initializr 创建 Springboot 项目。

Spring Initializr有几种用法:

  • 通过Web界面使用。
  • 通过Spring Tool Suite使用。
  • 通过IntelliJ IDEA使用。
  • 使用Spring Boot CLI使用

(1)、通过官网web界面创建

​ (a)、浏览器打开start.spring.io,如下图:

img

左侧根据你需要选择项目类型、编程语言、Springboot版本、打包方式、Java版本,输入项目信息,右侧还可以选择需要的依赖,下面有三个按钮GENERATE、EXPLORE、SHARE。点击GENERAE直接下载,点击EXPLORE弹出一个页面可以展示生成的代码,再点击download进行下载。SHARE可以复制创建springboot的路径。

​ (b)、将下载的压缩包解压到计算机中,这就是Springboot最基本的项目架构了。

img

(2)、IDEA创建Springboot项目

​ (a)、打开IDEA,依次点击File–>New–>project,出现如下界面:

img

红色方框里的地址是不是和上一种方式的地址一样?其实IDEA创建本质上也和上一样的,都是从这个网址创建,不过IDEA自动帮我们做了。

(b)、点击Next出现如下界面,也和上一种方式类似,输入项目信息,选择项目类型,Java版本,打包方式等。

img

(c)、继续点击Next出现如下界面,是不是也很熟悉,这里选择依赖、springboot版本。

img

(d)、继续点击Next出现如界面,输入项目名称,选择项目路径,点击Finish完成创建。

和上一样的,都是从这个网址创建,不过IDEA自动帮我们做了。

(b)、点击Next出现如下界面,也和上一种方式类似,输入项目信息,选择项目类型,Java版本,打包方式等。

[外链图片转存中…(img-sOgws5xT-1665756909690)]

(c)、继续点击Next出现如下界面,是不是也很熟悉,这里选择依赖、springboot版本。

[外链图片转存中…(img-VOMfbCK0-1665756909690)]

(d)、继续点击Next出现如界面,输入项目名称,选择项目路径,点击Finish完成创建。

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
清远的vim编辑器配置可以通过在当前用户目录下新建一个.vimrc的隐藏文件来实现。您可以使用以下命令在终端中进行配置: sudo vi ~/.vimrc 在打开的.vimrc文件中,您可以添加自己想要的配置。比如,您可以设置自动缩进(C/C++)来提高代码的可读性和可维护性。这可以通过在.vimrc文件中添加以下内容来实现: 引用:在.vimrc文件中添加以下内容: set autoindent 这样,每次您打开一个C或C++文件时,Vim都会自动缩进代码。您可以根据自己的喜好和需要添加其他自定义配置来改进您的Vim编辑器。 此外,您还可以使用Vim的强大可配置性来设置自定义快捷键和脚本,以提高您的开发效率。例如,您可以设置一个快捷键来自动生成C语言的main函数。您可以在.vimrc文件中添加以下内容: 引用:在.vimrc文件中添加以下内容: map m i#include <stdio.h><Esc><Esc>oint main(int argc, char *argv[]) <Esc>o{<Esc>oreturn 0;<Esc>o}<Esc>2ko 这样,当您按下小写字母"m"时,Vim将自动在当前光标位置插入一个包含标准库头文件的#include语句,并生成一个具有标准的main函数的框架。 通过这些配置,您可以根据自己的需求和喜好来定制清远的Vim编辑器,并提高您的编码效率和舒适度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vim的配置](https://blog.csdn.net/qq_43047944/article/details/125185954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [嵌入式系统/ARM技术中的配置vim在源码中自动添加作者信息](https://download.csdn.net/download/weixin_38545117/13097884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值