简述基于JavaEE企业级开发技术

news2024/11/18 11:45:28

一、绪论

1、学习内容

  • javaEE企业开发技术概述
  • javaEE容器——Spring
  • ORM数据层——MyBatis/JPA
  • Web层——Spring MVC
  • 展现层——JSP/Thymeleaf
  • 整合框架——SSM/SSH
  • 用户模块分析
  • 用户模块+功能模块设计

前端框架:Bootstrap,NodeJS,Vue/React/Angular

2、WEB端开发发展历程(java)

  • CGI——每次请求产生一个进程,重量级。
  • Servlet——每次请求产生一个线程,轻量级。

控制逻辑、页面表现、业务逻辑全部混在一起,前端设计无法介入

  • JSP——编译成Servlet,在HTML中嵌入java代码。前端开发人员可以进行较独立的设计和修改
  • Model1——JSP+Bean
    业务java代码封装到bean中
    通过<jsp:useBean >标签获取/创建javabean
    JSP负责页面表现和控制逻辑
    Javabean负责业务逻辑
  • Model2——Web MVC
    M——Model,模型(业务模型),即Web应用中的数据及对数据的处理,页面要显示的数据,页面要提交的数据,实体数据。还包括对数据的管理和维护。可进一步分层
    V——View,视图,即web页面,对模型的展现
    C——Controller,控制逻辑,接收用户请求转发给相应的模型进行处理,把模型处理结果返回给对应的视图进行展现。

3、JavaEE应用的特点

JavaEE是一套使用Java进行企业级Web应用开发的大家一致遵循的工业标准。在这里插入图片描述

4、开发平台与工具包

  • IntelliJ IDEA(Ultimate 教育版)
  • Apache Tomcat8
  • Mysql5.7
  • Spring5
  • MyBatis3.5
  • JPA/Hibernate5

5、基于maven的java项目开发管理

  • JDK8——Java运行环境
  • IDEA (Eclipse EE)——集成开发环境
  • Maven3——Java项目构建工具
  • GIT/gitee——源代码管理工具
  • Jenkins——持续集成工具(CI)

6、Maven开发配置(IDEA)

  • (1)下载apache-maven,解压后放D:\software\maven
  • (2)本地maven仓库:新建目录D:\software\maven\repo
  • (3)Maven配置:修改D:\software\maven\conf\settings.xml
    修改maven配置中的localRepository和mirror,如下:(不要放在xml的注释中!)
<localRepository>D:\software\maven\repo</localRepository>
<mirror>
    <id>ali</id>
    <mirrorOf>*</mirrorOf>
    <name>ali maven repo</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

以上是windows,若为mac:

<localRepository>/usr/local/repo</localRepository>
<mirror>
    <id>ali</id>
    <mirrorOf>*</mirrorOf>
    <name>ali maven repo</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
  <id>maven-default-http-blocker</id>
  <mirrorOf>external:http:*</mirrorOf>
  <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
  <url>http://0.0.0.0/</url>
  <blocked>true</blocked>
</mirror>
  • (4)配置IDEA的maven设置:点击File->Settings菜单,搜maven
    在这里插入图片描述
  • (5)在IDEA中创建maven项目:FileNewproject,选择maven
    在这里插入图片描述
  • (6)项目信息完善,maven选择
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • (7)功能开发
    添加依赖:在pom中添加dependency元素即可,输入artifactId自动联想完成添加
    在这里插入图片描述

二、Spring概述

1、Spring简介

Spring是什么:

  • 一个复杂而又简洁的javabean工厂
  • Spring是一种轻量级的、非侵入式的Java/JavaEE应用框架
  • 管理bean的创建和管理bean 的依赖

Spring优点:

  • Spring的DI容器,提高组件之间的解耦
  • SpringAOP提供通用任务的集中统一处理(安全、事务、日志等),实现更好的代码复用

2、IOC与DI

容器来管理对象之间的依赖关系(而不是对象本身来管理),就叫“控制反转”或“依赖注入

Bean容器框架的基本思想就是IOC/DI

IOC(Inversion of Control):由容器来负责控制对象的生命周期和对象间的关系(一种减少类与类之间依赖的设计原则)
DI(Dependency Injection):在系统运行中,由容器动态的向某个对象提供它所需要的其他对象

Spring就是一个IOC容器

IOC与DI,说的是一回事,但DI这个名词更能表达这种设计模式的思想

3、DI的两种方式

(1)设值注入
IOC容器使用属性的setter方法来注入被依赖的实例
<property name=“userDao” ref=“userDao”/>
(2)构造注入
IOC容器使用构造器来注入被依赖的实例
<constructor-arg ref=“db”/>
用index属性指定顺序,从0开始

4、两种注入方式对比

(1)设值注入的优点:

  • 对于复杂依赖关系,如采用构造注入,导致构造器过于臃肿,spring在创建bean对象的同时,要同时实例化其依赖的其他所有实例对象,导致性能下降
  • 对于某些属性可选的情况,多参数构造器更加复杂。

(2)构造注入的优点

  • 如果依赖对注入顺序有要求,则可以在构造器中决定依赖关系的注入顺序
  • 对依赖关系无须变化的bean
  • 使用构造注入,组件内部的依赖关系对于组件调用者完全透明,更符合高内聚原则。

设值注入为主,构造注入为辅

三、Spring配置管理

1、XML

标记语言
(1)Html(非严格,容错)
(2)Xml(可扩展标记语言,严格定义,格式良好的)
在这里插入图片描述
在这里插入图片描述

2、Spring容器

org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IoC容器负责容纳bean,并对bean进行管理。

使用XML作为配置元数据的描述格式,对那些我们希望通过Spring IoC容器管理的bean进行定义。

ApplicationContextBeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。

ApplicationContext可利用 ContextLoader在 Web应用启动的时候 自动创建 (SSH整合的时候 就是采用这种方式 )
创建 ApplicationContext容器时 ,所有 singleton bean将会被 预初始化 。

3、Spring包依赖

在这里插入图片描述

4、Spring中bean的定义

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计个性化名片网站Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Appium基础 — Appium测试环境搭建总结

1、Appium测试环境搭建整体思路 &#xff08;1&#xff09;Android测试环境搭建 Android测试环境需要搭建三个环境&#xff0c;Java&#xff0c;AndroidSDK&#xff0c;Android模拟器。 为什么要安装这三个环境&#xff1f; Java&#xff1a;Android的应用程序层使用的语言是…

理解Linux设备树(DTS)

DTS Dts&#xff1a;DTS即Device Tree Source&#xff0c;是一个文本形式的文件&#xff0c;用于描述硬件信息。一般都是固定信息&#xff0c;无法变更&#xff0c;无法overlay。 Dtsi&#xff1a;可以理解为dts的公共部分&#xff0c;添加、变更非常灵活。Dtsi包含在dts中。 …

基于 EasyOCR + HanLp 实现图片文字实体(中文姓名、机构名、地域名)识别

一、EasyOCR HanLp EasyOCR 是一个python版的文字识别工具。目前支持80中语言的识别。并且支持&#xff1a;图像预处理&#xff08;去噪、色彩饱和度、尖锐处理)、CRAFT文字检测、中间处理&#xff08;倾斜处理等&#xff09;、文字识别、后续处理、输出结果。框架如下&#…

RHCE实验--ansible

第四章 1、使用debug模块&#xff0c;显示当前受管主机的dns服务器的ip地址。 2、将createuser.fact文件传输到受管主机上作为自定义事实变量文件&#xff08;/etc/ansible/facts.d/&#xff09;&#xff0c;该文件的内容如下&#xff1a; [general] username wujing mima…

以太网 STP临时环路的产生、STP BPDU的转发过程、根桥故障案例分析。

2.10.2 以太网 传统STP生成树&#xff08;STP临时环路、STP BPDU的转发过程、根桥故障案例&#xff09; 传统STP生成树2.10.2 以太网 传统STP生成树&#xff08;STP临时环路、STP BPDU的转发过程、根桥故障案例&#xff09;STP临时环路&#xff1a;STP BPDU的转发过程&#xff…

多维数据分析

【数据挖掘】数据挖掘#商业智能&#xff08;BI&#xff09;数据分析挖掘概念 数据挖掘目前在各类企业和机构中蓬勃发展。因此我们制作了一份此领域常见术语总结。 分析型客户关系管理&#xff08;Analytical CRM/aCRM&#xff09;: 用于支持决策&#xff0c;改善公司跟顾客的…

redis集群详细搭建方式(含原理、操作指令、异常处理)

目录 1.概述 2.配置 2.1.配置文件 2.2.合体 2.3.进入cli 3.集群操作 3.1.查看集群信息 3.2.集群中录入值 3.3.查询集群中的值 4.故障处理 1.概述 概念&#xff1a; redis集群是从3.0版本开始支持的一个功能&#xff0c;是redis的一种水平扩展方式&#xff0c;将全局数据分…

NNDL 作业12:第七章课后题

习题7-1在小批量梯度下降中,试分析为什么学习率要和批量大小成正比. 在小批量梯度下降中&#xff1a; 令&#xff0c;则&#xff1a; 因此我们要使得参数最优&#xff0c;则为最优的时候的常数&#xff0c;故学习率要和批量大小成正比。 习题7-2在Adam算法中,说明指数加权平均…

以太网 传统STP生成树的BPDU介绍、STP端口状态介绍与切换过程,STP详细的工作过程。

2.10.1 以太网 传统STP生成树&#xff08;STP BPDU、STP端口状态、STP工作过程&#xff09; STP生成树协议的之间的交互通过STP BPDU&#xff08;根协议数据单元&#xff0c;Bridge Protocol Data Unit&#xff09;进行。 传统STP生成树2.10.1 以太网 传统STP生成树&#xff0…

《码出高效》五 异常与日志

前言 本章主要是讲异常处理&#xff0c;关于异常主要有三个问题&#xff1a; 哪里发生异常 谁来处理异常 如何处理异常 围绕这三个问题就有了一套异常处理机制 异常分类 通常异常时针对不稳定代码的&#xff0c;并且需要区分类型 throw和throws的区别&#xff1a; 以此段代…

session条件竞争

PHP SESSION 的存储 Session会话存储方式 PHP将session以文件的形式存储服务器的文件中&#xff0c;session.save_path来控制 默认路径 /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID session文件默…

PS图层+移动工具(2)复制删除快捷键 图层分组 前景色填充

查看此文前 你需要先读 PS图层移动工具(1)图层概念-拖动操作-移动工具基础 其实显示变换控件 这个配置相对 是容易造成错误操作 不小心就把文件拖动了 当我们想调这些时 可以直接 按住键盘上的 CtrlT 然后点击图层 这个操作框就出来了 然后调好之后 还是 直接用鼠标双击图层 就…

荧光染料Sulfo-Cyanine 7 Tyramide,Tyramide-Sulfo-Cy7,磺酸基-花青素Cy7 酪酰胺

一&#xff1a;产品描述 1、名称 英文&#xff1a;Sulfo-Cyanine 7 Tyramide&#xff0c;Tyramide-Sulfo-Cy7 中文&#xff1a;磺酸基-花青素Cy7 酪酰胺 2、所属分类&#xff1a;Cyanine 3、分子式&#xff1a;C43H51N3O8S2 4、分子量&#xff1a;802.01 5、质量控制&am…

二叉树的序列化与反序列化

二叉树的序列化与反序列化 通俗的说就是给定一个二叉树的根节点&#xff0c;用某种方法将树结构的信息存到一个字符串中&#xff0c;并且还可以用这一个字符串还原这棵树。 本文介绍两种方法&#xff0c;分别为递归法和迭代法。 剑指 Offer 37. 序列化二叉树 递归法 序列化&a…

final域的内存语义

重排序规则 1. 在构造函数内对一个final域的写入&#xff0c;与随后把这个被构造对象引用赋值给一个引用变量&#xff0c;着两个操作不能重排序 2. 初次读一个包含final域的对象的引用&#xff0c;与随后初次读取这个final域&#xff0c;这两个操作不能重排序 以下面实例作说明…

基于ssm作业管理系统

随着计算机以及网络的普及&#xff0c;教师与学生对辅助教学方式的要求也越来越高&#xff0c;在教学辅助方式上追求质量及效率。作为教学核心组成之一的作业管理也趋向更加便 捷快速的方式。 经过调查&#xff0c;现阶段高校进行作业管理的方式主要有三种&#xff1a; 情况一&…

SSM学生宿舍管理系统(附源码)

本次介绍的是一个基于SSMJSP开发的学生宿舍管理系统的设计与实现&#xff0c;界面简洁、程序逻辑清晰&#xff0c;适合作为毕业设计的模板参考&#xff01; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家 …

阿里妈妈star论文重点记录

论文地址&#xff1a;https://arxiv.org/pdf/2101.11427.pdf 1&#xff1a;业务实际应用 自 2020 年底以来&#xff0c;STAR 已部署在阿里巴巴展示广告系统&#xff0c;点击率提升8.0%和RPM增加6% 2&#xff1a;特点 星型拓扑促进跨多个domain的有效信息转换&#xff0c;在…

MATLB|抽水蓄能电站系统的最优竞价策略研究

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…