Spring总结查询

在SPRING DATA MONGODB中使用聚合统计查询 在SQL语句中如要做统计一般是这种方式: SELECT ..,SUM(1) FROM .. WHERE .. GROUP BY .. HAVING .. SORT .. 在MONGODB中的架构图: 在SPRING DATA MONGODB中是这样写的: public class VideoRepositoryImpl implements VideoRepositor 阅读详情

一.Spring就这路子得背一下
敲一敲好吧!!!

1.Spring概念
Spring是一个轻量级的框架,也是一个容器,主要用来管理bean工厂。利用Spring可以大幅提高开发代码的效率,也可以大幅降低代码之间的耦合度。

2.IOC(控制反转)与DI(依赖注入)
不是一种设计模式而是一种思想,是同一概念在不同时期由不同人提出的。其主要思想是程序员不需要主动去创建对象获取实例而是将这个任务交给Spring被动创建对象及其实例。就好比点外卖,我们有时候不想自己做饭,通过点外卖可以将此任务交由第三方进行处理下单,然后将外卖送至你的手中。
IOC容器的本质是XML文件,创建对象以及查找依赖对象的工作交给了Spring。

3.Spring的组成
分别是:数据访问与集成、面向切面编程、instrumentation、spring核心容器、web原创调用、测试。

4.Spring IOC容器的工作原理
首先对xml文件里的bean的配置信息进行读取,然后进行装配,最后由客户端发出请求从容器中获取对象。

5.IOC容器的两种类型
1.Spring BeanFactory容器 基础级的容器
2.Spring ApplicationContext容器 企业级的容器,可以从属性文件中解析文件信息并将事件传递给监听器。包括1的所有内容,实际开发中要采用大于或等于1的级别。
其内容包括:a.FileSystemXmlApplicationContext(需要Path路径)
b.ClassPathXmlApplicationContext(最常用) c.XmlWebApplicationContext d.AnnotationConfigApplicationContext e.AnnotatonConfigWebApplicationContext

6.利用IOC管理Bean
①.基于xml的配置:
1.属性注入(setter)
是通过标签来定义的,有多少属性就配置多少个property ****ref

2.构造器注入
是通过

3.集合属性注入
可通过list标签进行集合注入。



7.bean的作用域
a.singleton(每次只允许创建一个bean实例,缺省情况下的默认值,在IOC容器初始化时就获取对象。可以使用lazy-init来指定是否延迟创建)
b.prototype(通过getBean()方法获取实例,每次调用bean即可获取一个实例,在用户调用对象时获取对象)
c.request(每有一个http请求即获取一个实例,仅适用与webApplicationContext环境)
d.session(同一个http session获取同一实例,不同http session获取不同实例。仅适用与webApplicationContext环境)
e.globalsession

8.bean的生命周期
bean的生命周期经历了
(1).首先要通过三种注入方式进行bean的注入,然后需要将其进行前置处理,选择bean的init-method属性,然后在对应的pojo类中添加方法。
(2).然后进行bean的使用,在使用完毕后进行后置处理,选择destroy-method属性,然后在对应的pojo类中添加方法,最后进行bean的销毁。
这样就是一个完整的bean的生命周期,用过程描述如下:
实例化对象→bean的注入→调用BeanPostProcessor接口的before方法→调用initializingBean的after方法→init-method属性指定的方法→调用BeanPostProcessor接口的after方法→bean的作用域→调用disposable的destroy方法→destroy-method属性指定的方法

9.bean的继承关系
关于bean之间的继承需要用到 parent属性。分别有四种方式:
(1).直接在pojo中创建子类
(2).基于xml下的,通过bean的继承实现类的继承
(3).基于xml下的,将相同属性值提取出来定义一个父类bean,然后让所有的子类bean继承他并进行重写。
(4).定义抽象bean,可以将abstract设置为true
总结来看,关于bean的继承关系与java中类的继承关系有很大区别。前者是实例与实例之间的继承关系,后者是类与类之间的继承关系。

10.bean的自动装配
使用Autowire属性设置为true便可实现对bean的自动装配,而bean的自动装配类型又有
a.default 默认不使用自动装配。
b.byName 通过bean的setter方法名进行自动装配,通过bean的id与setter方法的首字母小写并去掉set的字段进行匹配,若匹配成功,则返回对象。
c.byType 通过setter方法的形参类型进行自动装配,若找到一个setter方法与bean匹配,则返回对象;若找到多个,输出异常;若没找到,无动作发生。
d.constructor 通过bean的无参、有参构造器进行自动装配。

11.基于注解的管理
@Component 用于vo模型层
@Service 用于业务层
@Controller 用于表现层,表明该类扮演控制器的角色
@Repository 用于持久层
@Autowired 自动装配Bean
@RequestMapping 处理http请求到指定的URL
@Resource bean的注入
@Scope bean的作用域
@preDestroy @PostConstruct Bean的生命周期
*开启包的注解扫描
ContextComponentScan

SpringMVC@Controller、@Service、@Repository和 @Component 将类标识为Bean,这样Spring就能对其依赖注入

Spring引入了一些注解用于简化 Spring 的开发。

@Repository注解它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。
具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过实现。如下所示:
// 首先使用 @Repository 将 DAO 类声明为Spring Bean
package cn.jobs1127.dao;
@Repository
public class CommonHibernateBaseDaoImpl implements ICommonHibernateBaseDao {……}

// 其次,在 XML 配置文件中启动 Spring 的自动扫描功能

…… ……

如此,我们就不再需要在 XML 中显式使用 进行Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class文件,所有标注了 @Repository 的类都将被注册为 Spring Bean。

@Repository 只能标注在 DAO 类上。
该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。
Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。接收前台的请求/参数通过@Service服务层进行数据库等操作,将数据库的信息返回到前端,根据需要进行控制、跳转等操作。

@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。

@Service 通常作用在业务层,也就服务层,但是目前该功能与 @Component 相同。在服务层通常自动注入与DB打交道的Dao Bean

通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的Bean对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。

与通过 XML 配置的 Spring Bean 一样,通过上述注解标识的Bean,其默认作用域是”singleton”单例模式,为了配合这四个注解,在标注 Bean 的同时能够指定 Bean 的作用域,Spring2.5 引入了 @Scope 注解。使用该注解时只需提供作用域的名称就行了,如下所示:

@Scope(“prototype”)
@Repository

12.Spring的AOP
AOP:即面向切面编程,采用这种方式可以大幅降低模块之间的耦合度,可以是各个模块的业务逻辑得到较好的分离,即为业务逻辑设立不同的多个切面和切入点,在访问时只需将连接点连入切入点进而访问切面,同时,会进行一些增强处理。

13.AspectJ和AOP的区别
AspectJ是需要特定的编译器的且其是一个面向切面的框架,而AOP不需要特定的编译器,是通过动态代理的方式实现的创建对象的过程。

14.AOP增强处理的类型
a.前置增强处理(目标方法执行前)b.后置增强处理(目标方法执行后)c.环绕增强处理(目标方法执行前后,一般用于多线程)d.抛出异常增强处理(目标方法执行抛出异常后)
在xml文件中基于零注解的配置:aop:aspectj-autoproxy/

15.AOP的配置
a.基于注解的配置:使用@pointcut注解中的execute方法
b.基于xml的配置:使用aop:config../标签配置
要么全部使用基于注解的配置,要么全部使用基于xml的配置。一旦混用将会报错发生异常。

16.数据库连接池
数据库连接池负责分配、管理和释放连接。使用数据库连接池可以提高数据库的可利用性
并提高数据库的效率,能有效避免数据丢失。
a.C3P0
需要在xml配置的:扫描包结构,加载外部配置文件,定义配置文件(jdbcDriver,jdbcUrl,jdbcUsername,jdbcPsw),最小连接数,最大连接数(要注意最小与最大的差距),关闭连接后不自动commit,获取连接失败重试的次数。
b.DBCP
c.proxool

17.Spring的事务,事务的作用。
? 编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。
? 声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务

作者:奔腾的心
来源:优快云
原文:https://blog.youkuaiyun.com/qq_29706435/article/details/82380893
版权声明:本文为博主原创文章,转载请附上博文链接!

spring data jpa中的DTO查询 昨天收到一封邮件,问了我一个问题,问题如下: SELECT COUNT(user.id),user_name FROM USER where user_name like "%?%" GROUP BY user_name,id类似这种的sql用spring data jpa怎么写? 下面就这个问题一起来探讨下,怎么解决? 1、新建Entity package com.chhliu.spri 阅读详情

相关推荐

Spring boot查询数据

今天分享的是Spring boot查询注册的用户名是否重复。 首先我们在创建项目的时候就可以添加下数据库的依赖这样会方便一点,当然也可以手动添加依赖。然后就是添加一下数据库的相关配置。 在到页面上获取到用户名,在进行调用th:οnblur="|checkUser(this)|"这个方法 在通过这个方法里面的URL在进行跳转,如果是data==102用户名重复,否则用户名就可以注册,通过post提交。 跳到控制器,在通过String username获取到数据,然后返回数据到接口去查询。 Spring

weixin_44560394的博客 3557

SSM总结

SSM总结 这段时间学完了spring,springMVC,以及实现了ssm整合,也做了一些业务,今天来做个总结 一、SSM总的框架 构成 首先来讲讲ssm框架的整体吧,ssm框架主要由Spring、SpringMVC、mybatis三层构成,学起来也不是那么难。 学习路线 学习顺序是由mybatis→Spring→SpringMVC来走的;先将mybatis和spring这两部分各自的特性与知识学完后,在学习将这两层整合,接着到MVC里进行ssm整合得到一个完整的底层框架 作用 mybatis主要用来实

weixin_51348116的博客 2289

【Spring Boot】Spring Boot中的简单查询

JPA除了可以直接使用JpaRepository接口提供的基础功能外,还支持根据实体的某个属性实现数据库操作,Spring Data JPA能够根据其方法名为其自动生成SQL,支持的关键字有find、query、get、read、count、delete等,主要的语法是findByXX、queryByXX、getByXX、readByXX、countByXX等。

衍生星球的博客 1393

SSM 项目实战开发经验总结(Spring & Spring MVC & MyBatis)

创建 maven 工程引入前端框架架构项目编写配置文件web.xml使用MyBatis Generator逆向工程生成mapper接口、mapper接口对象的xml,以及各实体类测试mapper在entity包中创建实体类在service包中创建service接口,并实现接口在 index.jsp 页面编写发起请求的代码在controller包中创建Controller控制器对象测试控制器类在handler包中创建Interceptor拦截器类。

SCU软件学院篮球队19级队长的博客 733

Spring JdbcTemplate查询实例

Spring JdbcTemplate查询实例

weixin_43860634的博客 1312

我的ssm项目总结

NULL 博文链接:https://sivan-0222.iteye.com/blog/2237932

SSM个人总结(基础知识)

一、重要标签 @RequestMapping:请求地址的映射,设置路径,前端可跳转到后端该路径; @RequestBody:读取前端给的数据,将相应的数据绑定到返回的对象上; @ResponseBody:返回给前端json数据。 二、SSM框架流程 1.Model:业务数据和业务处理逻辑:pojo、Dao、service; 2.Spring MVC: DispatherServlet请求入口——进图书馆的门; HandlerMapping请求派发——请求找一本书; Controller请求处理——怎么找

Fiona20的博客 631

ssm学习总结

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

SpringBoot和SSM框架开发总结

文章目录一,SpringBoot简介1.Spring注解2.SpringBoot注解:3.SpringMvc注解:4.Mybatis 注解:二,代码开发回顾三,ssm整体复习Mybatis 一,SpringBoot简介 SpringBoot 只是一个配置工具,整合工具,辅助工具. 基于“约定优于配置”的思想。 设计目的是用来简化新Spring应用的初始搭建以及开发过程。 特点: 创建独立的S...

森小子的博客 857

深入解析Zynq Ultrascale+ RF Data Converter中的PLL配置与时钟管理

本文深入解析了Zynq Ultrascale+ RF Data Converter中PLL配置与时钟管理的核心原理与实践。文章将RFDC时钟系统比作交响乐团,详细阐述了PLL作为指挥的关键作用,以及系统时钟、Tile时钟、参考时钟与采样时钟的层级关系。重点剖析了PLL配置参数(如VCO频率、分频器设置)的计算方法与稳定性考量,并提供了从IP配置使能顺序到多Tile同步、DRP访问等常见问题的实战避坑指南与调试技巧,帮助工程师构建稳定的射频信号处理基石。

7up55的博客 449

Java写一条吃满屏幕的贪吃蛇(A*自动寻路算法和一些简单的策略) 二

上一篇文章介绍了一条贪吃蛇的简单实现,这一篇介绍贪吃蛇的自动寻路算法 ,说是自动寻路其实也就是一种遍历地图的算法,如果玩过游戏肯定知道游戏里面一般会有自动寻路功能,贪吃蛇的自动寻路算法也就是实现这个功能。下面慢慢介绍这种算法吧。    最开始,我没有在网上找资料的时候,我对于设计寻路算法的看法是遍历整个地图,将障碍物做上标记,然后找一条能够到达目的地的线路就可以了。所以最开始我用了特别暴力的方式来...

Sober_yang的博客 3631

SSM框架及项目搭建总结

SSM框架及项目搭建总结 1、Mybatis MyBatis是一款优秀的持久层框架,Dao层,Service层,Controller层…… MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的XML或注解来配置和映射原生类型、接口和 Java 的 POJO。 sql和代码的分离,提高了可维护性。 提供xml标签,支持编写动态sql …… 详情...

AquaMriusC的博客 579

游戏开发实战:用UE4 Marschner模型打造次世代头发渲染(附Shader代码解析)

本文详细解析了如何在UE4中使用Marschner模型实现次世代头发渲染,包括Shader代码逐行解读与参数调优。通过对比传统Kajiya-Kay模型,展示了Marschner模型在物理精确性和视觉效果上的优势,并提供了性能优化与实战技巧,帮助技术美术师提升游戏角色渲染品质。

weixin_28223453的博客 240

spring进行简单的查询

使用mvc模式进行简单查询(由于是简单的查询,所有并不算严格意义上的mvc) 加载依赖 4.0.0 cn.et Spring_Web 0.0.1-SNAPSHOT war org.springframework spring-context 4.3.12.RELEASE

sinat_39955521的博客 1700

企业级防火墙实战:用深信服AF8.0打造安全办公网络(含流控/僵尸防护配置)

本文详细介绍了如何利用深信服AF8.0防火墙构建企业级安全办公网络,涵盖设备初始化、多接入方式配置、三维一体安全防护体系(包括应用控制、僵尸防护和智能流控)以及典型问题排查。通过实战案例和配置模板,帮助IT管理员高效部署和优化网络安全管理,提升企业网络安全防护能力。

weixin_28716443的博客 281

vue3 - 超详细 cropper.js 实现图片(头像)裁剪效果功能,在vue3中上传图像后按比例进行图片的裁剪及实时预览,Element / Ant Desi(详细示例源码,一键复制开箱即用!)

vue3图片裁剪及实时预览,vue3 vue-cropper,vue3头像裁剪,vue3 el-upload+vue-cropper 图像图片头像裁剪上传,vue3怎么进行图片的裁剪,vue3使用vue-cropper图片裁剪,vue3项目如何实现头像图片裁剪上传功能,vue3网站pc怎么将上传的图片按比例进行裁剪,vue3+element plus实现图片上传按尺寸大小裁剪,vue3中图片上传使用cropperjs 头像裁剪,vue3中图片上传使用cropperjs 头像裁剪,vue3好用的图片裁剪插件组

✅ 精选推荐文章 4506

Spring批量查询

    对于大批量数据查询,我们需要绕开Hibernate API,直接使用JDBC.使用Spring中JdbcTemplate的queryForList()方法也是很好的选择.当然整合好Spring,Struts和Hibernate是一门艺术,需要在实践中不断的总结和领略它们的风采.    业务说明:统计出一段时间内,全市每个缴费区域各种数据类型的记录数.在页面通过表格的形式显示出来,没有记录的通过0填充.如图区县业务1变更业务2变更业务3变更业务4变更区县10000区先22020全市2020系统原来使用

think 4307

华为OD新系统机试真题 - 操作历史管理器的撤销/重做能力

华为OD机试新系统真题【操作历史管理器的撤销/重做能力】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【操作历史管理器的撤销/重做能力】

qq_45776114的博客 864

Spring data jpa 查询条件+分页查询

1,依赖 2,application.yml server: port: 8082 #数据库连接 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/my_test?useUnicode=true&characterEncoding=utf-8 username: root password: root .

我爱吃红薯的博客 3330

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 996

在 SAP BTP Cloud Foundry 环境中开发 SAP HANA 的完整实战路线图

SAP HANA Cloud迁移路径解析:从本地到云原生的数据库现代化 本文梳理了SAP HANA在Cloud Foundry环境中的架构定位和实施路径,针对不同起点的项目提供迁移建议。核心内容包括: SAP HANA Cloud在Cloud Foundry中的双重角色:既作为平台服务提供数据库实例,又通过HDI容器管理MTA应用中的数据库工件。 针对四类典型项目起点的迁移策略: 绿地项目:直接采用CAP+SAP HANA Cloud组合 已有HANA service或XS advanced项目:需对照兼容

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 265

【java】Spring+Mongodb,按月查询集合查询数据

Spring+Mongodb在查询数据时,是可以指定查询集合的。那么现在的需求是按月份查询数据。 一、在serviceImpl上,先指定构造时间集合字符串 @Resource private MongoTemplate mongoTemplate; private String monthCollection = String.format("%s_warningInfo", formatDat...

May女子の博客 1704

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring SimpleJdbcTemplate查询示例

以下是一些示例,展示了如何使用SimpleJdbcTemplate query()方法从数据库中查询或提取数据。 在JdbcTemplate query() ,您需要手动将返回的结果强制转换为所需的对象类型,并将Object数组作为参数传递。 在SimpleJdbcTemplate中,它更加用户友好和简单。 jdbctemplate vesus简单 请将此SimpleJdbcTemplat...

一名可爱的技术搬运工 266

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

spring中使用查询缓存

由于使用的是spring3所以一下配置都基于spring3.   先来看spring没有默认设置查询缓存的设置,spring的xml如下:   <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht...

jsczxy2 166

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Spring 和 MyBatis 的各种查询

Spring 和 MyBatis 是 Java 开发中广泛使用的两个框架。Spring 提供了全面的基础设施支持,而 MyBatis 是一个优秀的持久层框架,两者结合能够简化数据访问层的开发。本文将详细介绍如何在 Spring 中使用 MyBatis 进行各种查询操作,包括简单查询、条件查询、分页查询、联合查询和动态 SQL 查询。

w13707470416的博客 526

spring中的分页查询

一.Spring中的分页对象 1.@PageableDefault 可防止在参数中,为Pageable对象指定默认值和排序方式 @GetMapping("/") public String index( // size: 每一页显示的数据数量 // sort: 排序的依据 // direction: 排序的方式 @PageableDefault(size = 5...

菜鸟记录 3826
上一篇: 两个数交换位置:int a = 1;int b = 2;如何交换ab两个变量的值?
下一篇: 毕向东Java基础知识总结(超级经典)
weixin_43398321
博客等级 码龄8年 13粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值