当前位置: 首页 > news >正文

商城网站制作方案挖金矿游戏网站建设

商城网站制作方案,挖金矿游戏网站建设,东莞微信网站建设动态,网站后台和前台​ 我是南城余#xff01;阿里云开发者平台专家博士证书获得者#xff01; 欢迎关注我的博客#xff01;一同成长#xff01; 一名从事运维开发的worker#xff0c;记录分享学习。 专注于AI#xff0c;运维开发#xff0c;windows Linux 系统领域的分享#xff01; …​ 我是南城余阿里云开发者平台专家博士证书获得者 欢迎关注我的博客一同成长 一名从事运维开发的worker记录分享学习。 专注于AI运维开发windows Linux 系统领域的分享 本章节对应知识库 https://www.yuque.com/nanchengcyu/java 本内容来自尚硅谷课程此处在知识库做了个人理解 1、概述 1.1、Spring是什么 Spring 是一款主流的 Java EE 轻量级开源框架 Spring 由“Spring 之父”Rod Johnson 提出并创立其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外还提供整合其他技术和框架的能力。 Spring 自诞生以来备受青睐一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日Spring 俨然成为了 Java EE 代名词成为了构建 Java EE 应用的事实标准。 自 2004 年 4 月Spring 1.0 版本正式发布以来Spring 已经步入到了第 6 个大版本也就是 Spring 6。本课程采用Spring当前最新发布的正式版本6.0.2。 1.2、Spring 的狭义和广义 在不同的语境中Spring 所代表的含义是不同的。下面我们就分别从“广义”和“狭义”两个角度对 Spring 进行介绍。 广义的 SpringSpring 技术栈 广义上的 Spring 泛指以 Spring Framework 为核心的 Spring 技术栈。 经过十多年的发展Spring 已经不再是一个单纯的应用框架而是逐渐发展成为一个由多个不同子项目模块组成的成熟技术例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等其中 Spring Framework 是其他子项目的基础。 这些子项目涵盖了从企业级应用开发到云计算等各方面的内容能够帮助开发人员解决软件发展过程中不断产生的各种实际问题给开发人员带来了更好的开发体验。 狭义的 SpringSpring Framework 狭义的 Spring 特指 Spring Framework通常我们将它称为 Spring 框架。 Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案它是 Spring 技术栈的核心和基础是为了解决企业级应用开发的复杂性而创建的。 Spring 有两个最核心模块 IoC 和 AOP。 IoCInverse of Control 的简写译为“控制反转”指把创建对象过程交给 Spring 进行管理。 AOPAspect Oriented Programming 的简写译为“面向切面编程”。AOP 用来封装多个类的公共行为将那些与业务无关却为业务模块所共同调用的逻辑封装起来减少系统的重复代码降低模块间的耦合度。另外AOP 还解决一些系统层面上的问题比如日志、事务、权限等。 1.3、Spring Framework特点 非侵入式使用 Spring Framework 开发应用程序时Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染对功能性组件也只需要使用几个简单的注解进行标记完全不会破坏原有结构反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。 控制反转IoC——Inversion of Control翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好我们享受资源注入。 面向切面编程AOP——Aspect Oriented Programming在不修改源代码的基础上增强代码功能。 容器Spring IoC 是一个容器因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理替程序员屏蔽了组件创建过程中的大量细节极大的降低了使用门槛大幅度提高了开发效率。 组件化Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML 和 Java 注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统。 一站式在 IoC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。 1.4、Spring模块组成 官网地址https://spring.io/ 上图中包含了 Spring 框架的所有模块这些模块可以满足一切企业级应用开发的需求在开发过程中可以根据需求有选择性地使用所需要的模块。下面分别对这些模块的作用进行简单介绍。 ①Spring Core核心容器 spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念 Beans、BeanFactory、BeanDefinitions、ApplicationContext。 spring-core IOC和DI的基本实现 spring-beansBeanFactory和Bean的装配管理(BeanFactory) spring-contextSpring context上下文即IOC容器(AppliactionContext) spring-expressionspring表达式语言 ②Spring AOP spring-aop面向切面编程的应用模块整合ASMCGLibJDK Proxyspring-aspects集成AspectJAOP应用框架spring-instrument动态Class Loading模块 ③Spring Data Access spring-jdbcspring对JDBC的封装用于简化jdbc操作spring-ormjava对象与数据库数据的映射框架spring-oxm对象与xml文件的映射框架spring-jms Spring对Java Message Service(java消息服务)的封装用于服务之间相互通信spring-txspring jdbc事务管理 ④Spring Web spring-web最基础的web支持建立于spring-context之上通过servlet或listener来初始化IOC容器spring-webmvc实现web mvcspring-websocket与前端的全双工通信协议spring-webfluxSpring 5.0提供的用于取代传统java servlet非阻塞式Reactive Web框架异步非阻塞事件驱动的服务 ⑤Spring Message Spring-messagingspring 4.0提供的为Spring集成一些基础的报文传送服务 ⑥Spring test spring-test集成测试支持主要是对junit的封装 1.5、Spring6特点 1.5.1、版本要求 1Spring6要求JDK最低版本是JDK17 1.5.2、本课程软件版本 1IDEA开发工具2022.1.2 2JDKJava17**Spring6要求JDK最低版本是Java17** 3Spring6.0.2 2、入门 2.1、环境要求 JDKJava17Spring6要求JDK最低版本是Java17 Maven3.6 Spring6.0.2 2.2、构建模块 1构建父模块spring6 在idea中依次单击 File - New - Project - New Project 点击“Create” 删除src目录 2构建子模块spring6-first 点击 Create 完成 2.3、程序开发 2.3.1、引入依赖 https://spring.io/projects/spring-framework#learn 添加依赖 dependencies!--spring context依赖--!--当你引入Spring Context依赖之后表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.0.2/version/dependency!--junit5测试--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.3.1/version/dependency /dependencies查看依赖 2.3.2、创建java类 package com.atguigu.spring6.bean;public class HelloWorld {public void sayHello(){System.out.println(helloworld);} }2.3.3、创建配置文件 在resources目录创建一个 Spring 配置文件 beans.xml配置文件名称可随意命名如springs.xm ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!--配置HelloWorld所对应的bean即将HelloWorld的对象交给Spring的IOC容器管理通过bean标签配置IOC容器所管理的bean属性id设置bean的唯一标识class设置bean所对应类型的全类名--bean idhelloWorld classcom.atguigu.spring6.bean.HelloWorld/bean/beans2.3.4、创建测试类测试 package com.atguigu.spring6.bean;import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class HelloWorldTest {Testpublic void testHelloWorld(){ApplicationContext ac new ClassPathXmlApplicationContext(beans.xml);HelloWorld helloworld (HelloWorld) ac.getBean(helloWorld);helloworld.sayHello();} }2.3.5、运行测试程序 2.4、程序分析 1. 底层是怎么创建对象的是通过反射机制调用无参数构造方法吗 修改HelloWorld类 package com.atguigu.spring6.bean;public class HelloWorld {public HelloWorld() {System.out.println(无参数构造方法执行);}public void sayHello(){System.out.println(helloworld);} }执行结果 测试得知创建对象时确实调用了无参数构造方法。 2. Spring是如何创建对象的呢原理是什么 // dom4j解析beans.xml文件从中获取class属性值类的全类名// 通过反射机制调用无参数构造方法创建对象Class clazz Class.forName(com.atguigu.spring6.bean.HelloWorld);//Object obj clazz.newInstance();Object object clazz.getDeclaredConstructor().newInstance();3. 把创建好的对象存储到一个什么样的数据结构当中了呢 bean对象最终存储在spring容器中在spring源码底层就是一个map集合存储bean的map在DefaultListableBeanFactory类中 private final MapString, BeanDefinition beanDefinitionMap new ConcurrentHashMap(256);Spring容器加载到Bean类时 , 会把这个类的描述信息, 以包名加类名的方式存到beanDefinitionMap 中, MapString,BeanDefinition , 其中 String是Key , 默认是类名首字母小写 , BeanDefinition , 存的是类的定义(描述信息) , 我们通常叫BeanDefinition接口为 : bean的定义对象。 2.5、启用Log4j2日志框架 2.5.1、Log4j2日志概述 在项目开发中日志十分的重要不管是记录运行情况还是定位线上问题都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息能够帮助我们了解并监控系统状态在发生错误或者接近某种危险状态时能够及时提醒我们处理同时在系统产生问题时能够帮助我们快速的定位、诊断并解决问题。 Apache Log4j2是一个开源的日志记录组件使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句它是JAVA下最流行的日志输入工具。 Log4j2主要由几个重要的组件构成 1日志信息的优先级日志信息的优先级从高到低有TRACE DEBUG INFO WARN ERROR FATAL TRACE追踪是最低的日志级别相当于追踪程序的执行 DEBUG调试一般在开发中都将其设置为最低的日志级别 INFO信息输出重要的信息使用较多 WARN警告输出警告的信息 ERROR错误输出错误信息 FATAL严重错误 这些级别分别用来指定这条日志信息的重要程度级别高的会自动屏蔽级别低的日志也就是说设置了WARN的日志则INFO、DEBUG的日志级别的日志不会显示 2日志信息的输出目的地日志信息的输出目的地指定了日志将打印到控制台还是文件中 3日志信息的输出格式而输出格式则控制了日志信息的显示内容。 2.5.2、引入Log4j2依赖 !--log4j2的依赖-- dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.19.0/version /dependency dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j2-impl/artifactIdversion2.19.0/version /dependency2.5.3、加入日志配置文件 在类的根路径下提供log4j2.xml配置文件文件名固定为log4j2.xml文件必须放到类根路径下。 ?xml version1.0 encodingUTF-8? configurationloggers!--level指定日志级别从低到高的优先级TRACE DEBUG INFO WARN ERROR FATALtrace追踪是最低的日志级别相当于追踪程序的执行debug调试一般在开发中都将其设置为最低的日志级别info信息输出重要的信息使用较多warn警告输出警告的信息error错误输出错误信息fatal严重错误--root levelDEBUGappender-ref refspring6log/appender-ref refRollingFile/appender-ref reflog//root/loggersappenders!--输出日志信息到控制台--console namespring6log targetSYSTEM_OUT!--控制日志输出的格式--PatternLayout pattern%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n//console!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定适合临时测试用--File namelog fileNamed:/spring6_log/test.log appendfalsePatternLayout pattern%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n//File!-- 这个会打印出所有的信息每次大小超过size则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩作为存档--RollingFile nameRollingFile fileNamed:/spring6_log/app.logfilePatternlog/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gzPatternLayout pattern%d{yyyy-MM-dd at HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n/SizeBasedTriggeringPolicy size50MB/!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 --DefaultRolloverStrategy max20//RollingFile/appenders /configuration2.5.4、测试 运行原测试程序 运行原测试程序多了spring打印日志 2.5.5、使用日志 public class HelloWorldTest {private Logger logger LoggerFactory.getLogger(HelloWorldTest.class);Testpublic void testHelloWorld(){ApplicationContext ac new ClassPathXmlApplicationContext(beans.xml);HelloWorld helloworld (HelloWorld) ac.getBean(helloWorld);helloworld.sayHello();logger.info(执行成功);} }控制台 ​
http://www.huolong8.cn/news/109670/

相关文章:

  • 长春建设平台网站的公司哪家好品牌建设策略论文
  • 做网站可以自由职业吗房地产公司如何做网站
  • 评论回复网站怎么做的网站开发环境与工具
  • 西安建设科技专修学院网站网络渠道有哪些
  • 网站维护和建设工作范围thinkphp网站开发服务器
  • 网站建设的专业知识做淘宝网站如何提取中间的提成
  • 贵阳网站建设公司排行免费的舆情网站入口有哪些
  • 网站建设企划河南建筑工程信息
  • 网站初期推广方案网站做联盟广告能赚钱吗
  • 网站建设需要注意什么问题关键词自动生成器
  • 网站添加后台搜索引擎营销方法主要有三种
  • 酷炫的网站欢迎页面网站建设作业多少钱
  • 格豪网络建站深圳网站建设深圳网
  • 泊头网站建设价格wordpress+判断手机
  • 设计师网站介绍彩票网站的统计怎么做
  • 单页式网站模板asp.net 网站开发视频教程
  • 北京欢迎你网站制作公司做dj平台网站
  • 成都大型网站建设公司排名机票售票网站开发
  • 网站推广对接建设部网站注册中心
  • 六盘水遵义网站建设怎么做石家庄建站模板厂家
  • 给别人做设计的网站seo技术代理
  • 吉林哪里做网站朗域装饰口碑怎么样
  • 青岛的网站设计wp用户前端化专业版wordpress插件[中英双语]
  • 成功的门户网站网站开发需要考什么证
  • 设计网站与建设wordpress 指定阅读
  • 网站建设存在四个问题个人网站制作 教程
  • 如何建单页网站栏目公众号文章导入wordpress
  • 从化手机网站建设网站建设如何维护
  • 一个网站是如何建设外贸网站建设模式
  • seo网络贸易网站推广网站建设需要用到哪些软件有哪些