java基础2

spring的概念:是一种容器可以管理所有的组件(也就是具有功能的类)框架。

核心关注:IOC和AOP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sYyFYBMu-1593404592479)(E:\笔记整理\Typora\java面试\面试准备图片\spring(IOC和AOP).png)]

IOC 控制反转

容器:主动的new资源变为被动的接受资源;主动获取变为被动接受;

DI:(Dependency Injection)依赖注入; 容器能知道哪个组件(类)运行的时候,需要另外一个类(组件);容器通过反射的形式,将容器中准备好的BookService对象注入(利用反射给属性赋值)到BookServlet中;

AOP:(Aspect Oriented Programming)面向切面编程;

指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式,面向切面编程;

MyBatis;和数据库进行交互;持久化层框架(SQL映射框架)

动态SQL:MyBatis 的强大特性之一便是它的动态 SQL,它极大的简化了我们拼接SQL的操作。
动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。
MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素:
if
choose (when, otherwise)
trim (where, set)
foreach

缓存:

一级缓存:
它指的是Mybatis中SqlSession对象的缓存。
当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供一块区域中。
该区域的结构是一个Map。当我们再次查询同样的数据,mybatis会先去sqlsession中
查询是否有,有的话直接拿出来用。
当SqlSession对象消失时,mybatis的一级缓存也就消失了。

二级缓存: 基于配置文件的开发
它指的是Mybatis中SqlSessionFactory对象的缓存。由同一个SqlSessionFactory对象创建的SqlSession共享其缓存。

1、javaEE项目启动过程:首先加载Spring上下文环境配置文件,然后加载SpringMVC配置文件。
Spring配置加载过程:
tomcat服务器启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,然后会读取它的listener和context-param节点,然后紧接着会创建一个ServletContext(servlet上下文,全局的),这个web项目的所有部分都将共享这个上下文,容器将转换为键值对,并交给servletContext,可以获取当前该web应用对象,即servletContext对象,获取context-param值,进而获取资源,在web应用启动前操作) ,listener中ContextLoaderListener监听器的作用就是启动Web容器时,监听servletContext对象的变化,获取servletContext对象的,来自动装配ApplicationContext的配置信息。这样spring的加载过程就完成了。

SpringMVC配置加载过程:
springMVC其实和spring是一样的,但是它不用在程序开始时访问。springMVC的加载过程是通过Servlet节点 。

  Servlet介绍:

    Servlet通常称为服务端小程序,是服务端的程序,用于处理及响应客户的请求。Servlet是一个特殊的Java类,创建Servlet类自动继承HttpServlet。客户端通常只有GET和POST两种请求方式,Servlet为了响应这两种请求,必须重写doGet()和doPost()方法。大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写service()方法即可响应客户端的所有请求。

   创建Servlet实例有两个时机:

客户端第一次请求某个Servlet时,系统创建该Servlet的实例,大部分Servlet都是这种Servlet;
web应用启动时立即创建Servlet实例,即1
2、监听器如何进行项目的初始化
监听器中通过contextInitialized(ServletContextEvent args)初始化方法,来获得ServletContext 对象以及context-param值。

                          ServletContext = ServletContextEvent.getServletContext();

                          context-param的值 = ServletContext.getInitParameter("context-param的键");

   拿到这个context-param的值之后,可以在WEB项目还没有完全启动时,进行一些初始化工作,但是最主要的还是自动装配ApplicationContext的配置信息。

3、spring和springMVC整合后,可以取消掉web.xml中spring的listener配置吗?
如果只有 Spring mvc 的一个 Servlet,listener 可以不用。
但是如果用了Shiro 等,Shiro 用到的 Spring 的配置必须在 listener 里加载。
一般 Dao, Service 的 Spring 配置都会在 listener 里加载,因为可能会在多个 Servlet 里用到,因为父子 Context 的可见性问题,防止重复加载所以在 listener 里加载。
4、web.xml中spring的核心ContextLoaderListener初始化的上下文和springmvc的核心DispatcherServlet初始化的上下文关系

 ContextLoaderListener初始化的上下文加载的Bean是对于整个应用程序共享的   :一般如DAO层、Service层Bean;
 DispatcherServlet初始化的上下文加载的Bean是只对Spring Web MVC有效的Bean,如Controller,该初始化上下文应该只加载Web相关组件。

mysql

  1. 事务的基本介绍

    1. 概念:
      • 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
    2. 操作:
      1. 开启事务: start transaction;
      2. 回滚:rollback;
      3. 提交:commit;
  2. 事务的四大特征:
    1. 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。
    2. 持久性:当事务提交或回滚后,数据库会持久化的保存数据。
    3. 隔离性:多个事务之间。相互独立。
    4. 一致性:事务操作前后,数据总量不变

  3. 事务的隔离级别(了解)

    • 概念:多个事务之间隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。
      • 存在问题:
        1. 脏读:一个事务,读取到另一个事务中没有提交的数据
          2. 不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。
          3. 幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。
          * 隔离级别:
          1. read uncommitted:读未提交

                 * 产生的问题:脏读、不可重复读、幻读
                    			
                   2. read committed:读已提交 (Oracle)
                      			
                      * 产生的问题:不可重复读、幻读
                         			
                        3. repeatable read:可重复读 (MySQL默认)
                           			
                           * 产生的问题:幻读 v
                              			
                             4. serializable:串行化
                                			
                                * 可以解决所有的问题
                                   			
                                  5. 	* 注意:隔离级别从小到大安全性越来越高,但是效率越来越低
                                           * 数据库查询隔离级别:
                                             * select @@tx_isolation;
                                                  * 数据库设置隔离级别:
                                                    * set global transaction isolation level  级别字符串;
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值