IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 框架总结(华清远见) -> 正文阅读

[Java知识库]框架总结(华清远见)

框架总结(华清远见)

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

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:18:51  更:2022-10-17 12:22:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/30 13:50:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码