schema

Freemarker模板引擎

若如初见. 提交于 2020-01-18 13:37:30
模板引擎的实质就是将页面结构提前写好,然后将数据渲染到模板上生成一个静态页面,这样一来,下次就可以 直接访问静态文件,不用进行额外的获取数据的操作(例如:访问数据库),这样大大提升了网站的访问速度。 现在以一个demo为例来学习一下Freemarker,顺便提一下其中的一些细节。 1.新建maven支持的web项目 新建web项目,并为其添加Maven支持,个人建议选择MyEclipse Maven JEE Project,如果选择下面一条的话, 会多出4个名字较长的文件夹,而我们本身又不一定会用到。 2.pom.xml文件添加依赖包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.freemarker<

Spring

若如初见. 提交于 2020-01-18 04:31:22
什么是Spring Spring是一个开发源代码的设计层面的框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。 Spring的特点 方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。 AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程, 许多不容易用传统OOP实现的功能可以通过AOP轻松应付。 声明式事务的支持 在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来, 通过声明式方式灵活地进行事务的管理,提高开发效率和质量。 方便集成各种优秀框架 Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。 降低Java EE API的使用难度 Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等) 提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。 Java 源码是经典学习范例

Spring Day03 AOP

只愿长相守 提交于 2020-01-18 02:10:10
1.Spring 的 AOP 简介 1.1 什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 1.2 AOP 的作用及其优势 作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强 优势:减少重复代码,提高开发效率,并且便于维护 1.3 AOP 的底层实现 实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。 1.4 AOP 的动态代理技术 常用的动态代理技术 JDK 代理 : 基于接口的动态代理技术 cglib 代理:基于父类的动态代理技术 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GID0L2KN-1578710358957)(img\图片1.png)] 1.5 JDK 的动态代理 ①目标类接口 public

小米流式平台架构演进与实践

旧巷老猫 提交于 2020-01-17 17:12:19
小米业务线众多,从信息流,电商,广告到金融等覆盖了众多领域,小米流式平台为小米集团各业务提供一体化的流式数据解决方案,主要包括数据采集,数据集成和流式计算三个模块。目前每天数据量达到 1.2 万亿条,实时同步任务 1.5 万,实时计算的数据 1 万亿条。 伴随着小米业务的发展,流式平台也经历三次大升级改造,满足了众多业务的各种需求。最新的一次迭代基于 Apache Flink,对于流式平台内部模块进行了彻底的重构,同时小米各业务也在由 Spark Streaming 逐步切换到 Flink。 背景介绍 小米流式平台的愿景是为小米所有的业务线提供流式数据的一体化、平台化解决方案。具体来讲包括以下三个方面: 流式数据存储 :流式数据存储指的是消息队列,小米开发了一套自己的消息队列,其类似于 Apache kafka,但它有自己的特点,小米流式平台提供消息队列的存储功能; 流式数据接入和转储 :有了消息队列来做流式数据的缓存区之后,继而需要提供流式数据接入和转储的功能; 流式数据处理 :指的是平台基于 Flink、Spark Streaming 和 Storm 等计算引擎对流式数据进行处理的过程。 下图展示了流式平台的整体架构。从左到右第一列橙色部分是数据源,包含两部分,即 User 和 Database。 User 指的是用户各种各样的埋点数据,如用户 APP 和 WebServer

【SSM】实战:新闻发布管理系统——开发环境和框架搭建

跟風遠走 提交于 2020-01-17 13:20:55
一、创建项目,引入JAR包 JSTL标签库JAR包(两个):taglibs-standard-spec-1.2.5.jar、taglibs-standard-impl-1.2.5.jar。 Jackson框架所需JAR包(3个):jackson-annotations-2.8.8.jar、jackson-core-2.8.8.jar、jackson-databind-2.8.8.jar。 Java工具类JAR包(1个):commons-lang3-3.4.jar。 SSM整合JAR包(29个) 二、编写配置文件 在项目src目录下分别创建数据库常量配置文件、Spring配置文件、MyBatis配置文件、SpringMVC配置文件、log4j配置文件以及资源配置文件。 db.properties jdbc . driver = com . mysql . jdbc . Driver jdbc . url = jdbc : mysql : / / localhost : 3306 / db_mybatis ? serverTimezone = UTC jdbc . username = root jdbc . password = root jdbc . maxTotal = 30 jdbc . maxIdle = 10 jdbc . initialSize = 5

Extending XML Schema xs:choice

本秂侑毒 提交于 2020-01-17 12:46:54
问题 I'm developing build tools that are configurable via XML and extendable with PowerShell modules. I have an XSD (http://download.crawler-lib.net/BuildTools/BuildConfig.xsd) which describes the out of the box functionality. One extension point are the tools of the build sequences: <xs:element name="BuildSequence"> <xs:annotation> <xs:documentation>Performs a sequence of build tools to build the solution</xs:documentation> </xs:annotation> <xs:complexType> <xs:choice maxOccurs="unbounded"

Extending XML Schema xs:choice

天涯浪子 提交于 2020-01-17 12:45:48
问题 I'm developing build tools that are configurable via XML and extendable with PowerShell modules. I have an XSD (http://download.crawler-lib.net/BuildTools/BuildConfig.xsd) which describes the out of the box functionality. One extension point are the tools of the build sequences: <xs:element name="BuildSequence"> <xs:annotation> <xs:documentation>Performs a sequence of build tools to build the solution</xs:documentation> </xs:annotation> <xs:complexType> <xs:choice maxOccurs="unbounded"

C++ library to discover sql database schema for multiple vendors?

房东的猫 提交于 2020-01-17 07:58:29
问题 Just wondering if anyone knows of a C++ library that provides a single interface for querying database schema (tables, fields, field types), and for a variety of vendors? I know DTL does this to some degree, although I haven't dug into the details of how it does it, or if it makes that info available external to itself. *ODBC is probably fine, and I've already considered it, but I'd just like to see if there are other libraries that might encompass ODBC, native drivers (to get access to info

Java从入门到放弃-学习笔记-springmvc

只愿长相守 提交于 2020-01-17 06:06:36
个人博客 https://raptor1998.top/ 概述 springmvc是spring的亲儿子,属于web层框架,提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。 springmvc简介 核心架构 浏览器发送请求到前端控制器。 前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制。处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象)。 前端控制器调用处理器适配器去执行Handler。 处理器适配器HandlerAdapter将会根据适配的结果去执行Handler。调用处理器相应功能处理方法,并返回一个ModelAndView对象。 视图解析器将把逻辑视图名解析为具体的View。 View会根据传进来的Model模型数据进行渲染。 前端控制器向用户响应结果 参考链接 Springmvc框架理解 Springmvc实现原理与详解 Springmvc简介 Springmvc实现班级学生信息管理 目录 配置文件 spring-mvc.xml <?xml version="1.0"

( 2 )Spring ----依赖注入DI

假如想象 提交于 2020-01-17 03:18:47
1. 概念 Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系。 每个基于应用程序的 java 都有几个对象,这些对象一起工作来呈现出终端用户所看到的工作的应用程序。当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能独立于其他 Java 类来增加这些类重用的可能性,并且在做单元测试时,测试独立于其他类的独立性。依赖注入(或有时称为布线)有助于把这些类粘合在一起,同时保持他们独立。 2. Spring 基于构造函数的依赖注入 当容器调用带有一组参数的类构造函数时,基于构造函数的 DI 就完成了,其中每个参数代表一个对其他类的依赖。 这是 TextEditor.java 文件的内容: package com.tutorialspoint; public class TextEditor { private SpellChecker spellChecker; public TextEditor(SpellChecker spellChecker) { System.out.println("Inside TextEditor constructor." ); this.spellChecker = spellChecker; } public void spellCheck() { spellChecker.checkSpelling(); }