你会Spring Boot吗?精讲Spring Boot!

Spring Boot系列十三 Spring Boot集成RabbitMQ 1. 概述之前我有一系列关于RabbitMQ文章介绍了RabbitMQ的用法,本篇我们介绍如何在Spring Boot中集成RabbitMQ。本篇主要内容如下: 在Spring boot中消息的发送和接收的两种方式的demo 配置使用MessageConverter对消息序列化 2. Demo工程公共部分介绍工程名称:rabbitmq需要在我们的工程中的pom.xml引入新jar <!-- spri 阅读详情

Spring Boot到底是什么

在了解Spring Boot之前应该先了解下Spring,因为Spring Boot的核心是基于Spring构建的。Spring是由Rod Johnson在2002年创建的一个开源框架,Spring在创建到现在一直处于飞速发展之中。目前已经成为J2EE开发中的事实标准。但是随着IT技术的飞速发展,及IT项目变得越来越复杂。如果学习过Spring就知道Spring非常依赖xml文件进行配置,有时一个项目就有几十个xml配置文件,这些繁琐的配置、以及Spring整合第三方框架的配置问题。经常导致开发效率低下,一不小心就出现丢三拉四;有时一不留神就导致发版失败,给公司造成经济损失。

Spring Boot是由Pivotal团队打造的,并在2014年发布的一个全新框架,其设计目标就是用来简化Spring应用的搭建、开发及部署。Spring Boot采用了特定的方式进行配置,从而达到使开发人员不在需要配置繁琐的xml文件。简单的说其实Spring Boot并不是什么新的框架,就是摒弃了xml的配置方式,使用了一种新的配置方式;然后在maven中使用starter的方式整合了很多第三方框架,同时提供了很多默认的配置参数。

Spring Boot官网,有如【图1】一段话:

图1

这段话这段话跟我上面的解释大同小异。

Spring Boot为啥不学不行

Spring Boot在短短四年就已经由1.0发展到2.0了;而且就这短短四年就已经红遍神州大地。无论小公司,还是大企业,都在使用。

1.Spring Boot能干啥

打开Spring官网,映入我们眼帘的是如下一张图【图2】:

图2

看图中框住的那块知道,Spring官方对Spring Boot的定位是Build Anything,意思就是Spring Boot可以构建任何东西。Spring Boot旨在快速、高效,使用最少的配置构建Java应用。学完了Spring Boot,还有更高级的Spring Cloud和Spring Cloud Data Flow。

Spring Cloud的定位是Coordinate Anything (协调任何东西)

Spring Cloud Data Flow的定位是Connect Everything (连接任何东西)

仔细斟酌一下Spring Cloud和Spring Cloud Data Flow,发现Cloud和Data 都跟现在最火的技术关联在一起,Cloud对应云,Data对应数据。而Spring Cloud和Spring Cloud Data Flow有基于Spring Boot,所以Spring Boot必须先学。

2.企业招聘对Spring Boot的要求及Spring Boot的百度搜索指数

打开国内比较知名的招聘网站,例如在猎聘网搜索一下,可以发现很多Java相关的职位都对Spring Boot技术有所要求。如下【图3】这个Oralce公司的招聘职位,在招聘的职位描述里就对Spring Boot有要求。

图3

Spring Boot嫣然已经成为Java程序员打怪升级的必备技能。就不说Spring Boot有多重要了。

再看下Spring Boot的这个关键字的百度搜索指数,Spring Boot从2014年推出到现在,Spring Boot在百度的搜索指数一直处于稳步增长的状态中【图4】。说明程序员或者公司对Spring Boot关注度非常高。

图4

3.Spring Boot的好处

使用了Spring Boot后,能给开发人员带来哪些好处?能给运维人员带来哪些方便?甚至说能给公司带来哪些经济效益?看图【图5】说话:

图5

1.基于Spring

Spring Boot基于Spring,所以Spring有的优点Spring Boot也有,不需要开发人员去学习一个全新的框架,学习门槛相对降低。

2.快速编码

Spring Boot的依赖包都是基于maven的pom文件提供的,而Spring Boot本身就集成了特别多的第三方框架。以前开发Spring应用时,需要用到的第三方框架的库都需要开发人员一个一个去寻找;现在不需要了,有些可能只需引入一个pom.xml,就能把大量需要用到的第三方库自动引入到项目中。所以减少了开发工作量,实现快速编码。

3.模块化

基于Spring Boot开发的项目可以非常简单的实现模块化编程,这样的话可以非常有效的实现项目的分工合作,减少开发过程中的代码冲突。模块化编程还可以非常高效的实现减少代码的改动量,按需修改模块,降低生产发生事故概率。

4.配置简单

在文章开头就说了Spring Boot摈弃了繁琐的xml配置文件,大量的配置文件经常是导致生产事故的原因。Spring Boot大量采用yml形式的配置文件再加上相应的Annotation,从而大大减少了配置文件的个数,因为以前的Spring应用引入一个第三方框架说不定就要添加一个配置文件。举个例子,比如项目中要引入数据库连接池HikariCP,就需要添加一个关于HikariCP数据库连接池的配置文件,但是使用了Spring Boot采用HikariCP可能就只需要那么几行配置就可以了,因为Spring Boot默认集成HikariCP数据库连接池,提供了很多默认的配置。

5.便捷部署

Spring Boot天生就是为了简单、快捷部署而生。SpringBoot内嵌了Tomcat,不需要额外部署应用服务器Tomcat,只需简单一个Java运行环境即可,而且启动的命令也非常简单:java –jar xxx-release.jar。同时Spring Boot结合现在非常火的技术 Docker、Kubernetes可以快速实现集群部署。

6.有效监控

Spring Boot集成了非常高效的监控框架,只要简单引入对spring-boot-start-actuator的依赖,就可以实现对服务性能的监控。结合Spring Cloud就可以实现对整个微服务链路的全天候监控。

Spring Boot拦截器精讲 我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了拦截器功能。在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步: 定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦截)。 定义拦截器 在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现 Handle 阅读详情

相关推荐

Spring Boot 精讲篇——Spring Boot自动配置原理

SpringBoot的核心组件模块 首先,我们来简单统计一下SpringBoot核心工程的源码java文件数量: 我们cd到spring-boot-autoconfigure工程根目录下。执行 $ tree | grep -c .java$ 模块 java文件数 spring-boot 551 spring-boot-actuator 423 spring-boot-autoconfigure 783 spring-boot-devtools 169 spring-boot-cli 180 sp

weixin_48674590的博客 534

SpringBoot3.0精讲笔记

1、概览: 属性绑定,热部署,源码导入,自动配置,数据源,mp,web组件,MVC,模版,redis,消息,docker,jenkins, SpringCloud. 2、比较权威的springBoot介绍: 3、环境要求:Spring Boot Reference Documentation 4、热部署: ctrl+shift+alt+/ compaire.autoMake. 配置文件放置位置4个。 file./config > fil...

琼楼玉宇 5768

Spring Boot 核心知识点精讲:助你快速上手与深度理解

自动配置、起步依赖、依赖注入和外部化配置,并简要介绍了。利用自动配置和起步依赖,快速搭建应用框架。理解依赖注入和外部化配置,更好地掌握应用控制权。运用 Spring Boot 的特性,提高开发效率,构建高质量的 Spring Boot 应用。希望本文能够帮助您更好地理解和使用 Spring Boot,开启您的 Spring Boot 学习之旅!Spring Boot 官方文档Spring Framework 官方文档欢迎在评论区交流讨论。

weixin_52568491的博客 914

SpringBoot2.x系列教程01--史前文明之Spring简介

作者:一一哥 一. Spring之起源 1.你知道J2EE吗? 要说到Spring的历史起源,首先咱们要说说J2EE这个玩意儿。 J2EE在1999年和2000年的时候开始得到广泛实现,在J2EE中提出了”事务管理“等核心中间层标准化的概念,但是在实践中出现了各种问题,尤其是开发效率,开发难度和实际的性能都达不到预期。 2.EJB这个框架 那时候开发J2EE基本都是使用EJB这个框...

一一哥 2239

Spring、Spring MVC、Spring Boot 与 Spring Cloud 的关系解析!

专门解决 “多栋楼协同管理”(微服务架构中多个独立服务协同工作)的问题 —— 相当于小区的 “物业系统”:当小区盖了 “住户楼、商铺楼、停车场楼”(多个微服务)后,需要 “水电管网连接、安保巡逻、住户登记”(服务注册、负载均衡、熔断降级),这些都靠 Spring Cloud 实现。微服务是 “小区架构方案”(多栋楼),Spring Cloud 是 “实现该方案的运维工具”—— 方案≠工具,比如 “盖小区” 是方案,“物业系统” 是工具。,没有 Spring 就没有后两者。、Spring MVC 的。

qq_53040109的博客 1040

Spring Boot 2从入门到入坟 | 基础入门篇:你会看Spring Boot的官方文档吗?

开宗明义:如何学习Spring Boot呢? 其实学习任何一门新技术,我们都应该以它的官方文档为准。接下来,我们就来熟悉一下Spring Boot官方文档的整个架构,因为我们未来学习很多技术时,都是要参照官方文档来学习的,这样的话,我们就必须得知道所学习的每一个知识点都是出自于官方文档哪个位置。 我希望大家通过本讲的学习,能非常熟悉Spring Boot的官方文档,这样,无论Spring Boot升级到什么版本了,相信大家都能依据官方文档来自学了。 官方文档架构 首先,大家得明确一点,就是在本套系列教程中,

李阿昀的博客 1277

Spring Boot 精讲,看完你还敢说你不会 Spring Boot ?

大家使用Spring Boot这么久了,有没有知道Spring Boot的启动流程是怎样的呢?Spring是如何扫描到使用@Component的类并且把它放进BeanFactory呢?它是如何启动的呢?现在我们就一起看看这个Spring Boot的启动过程。由于写这篇文章的时候,在很多环境写过,所以可能由于Spring Boot版本不同代码也不同,但是思路是一样的。 1.创建SpringApplication对象 1.main方法 2.main方法进来后先创建一个实例new Sprin

公众号:该用户快成仙了 269

springboot精典全套视频讲解

java语言,springboot,详细的springboot实战与原理分析视频 详解,不像网上总缺14-18章核心视频!绝对全套!

SpringBoot详解

文章目录第一个SpringBoot程序原理yaml给属性赋值的几种方法JSR303校验多环境切换多配置文件yaml的多文档块配置文件加载位置分析自动配置原理精髓SpringBoot Web开发静态资源导入首页如何定制Thymeleaf扩展使用SpringMVC全面接管SpringMVC员工管理系统首页实现页面国际化登录功能展示员工列表增加员工修改员工删除员工404回顾整合JDBC整合Druid数据源配置数据源配置Druid数据源监控整合Mybatis框架SpringSecurity认识SpringSecur

jhyy_cc的博客 8590

Springboot精讲42课 资源来自gitbook

gitbook上的精品课程,本人自费购买,现分享大家一起学习。仅供学习交流使用

从示波器波形看懂死区:手把手教你调ST MCU的PWM,避免三相桥直通炸管

本文详细解析了如何通过示波器波形判断PWM死区时间,并手把手教你调整STM32高级定时器寄存器,避免三相逆变桥直通炸管。文章涵盖死区时间的本质与风险、STM32配置详解、示波器调试技巧及FOC系统中的特殊考量,帮助工程师优化电机驱动性能与安全性。

weixin_30315723的博客 735

【JavaEE】Spring Boot 快速上手

本文介绍了使用Spring Boot和Maven开发Java Web应用的基础知识。首先说明了Spring Boot如何简化传统Spring应用的配置流程,随后详细讲解了Maven的核心功能,包括项目构建和依赖管理。文章重点演示了Maven依赖配置方法、依赖传递机制以及如何解决依赖冲突,并介绍了Maven Helper插件的使用。此外,还解释了Maven仓库的工作原理,包括本地仓库配置和中央仓库访问。最后,文章指导读者完成了一个简单的Spring Boot Web项目创建过程,实现"Hello W

REGARD712的博客 2404

QGIS|如何将WGS84转换为CGCS 2000坐标系?

QGIS 3中如何将WGS84转换为国家2000大地坐标系? 今天来回答一位朋友在后台留言提出的问题:怎么将WGS84坐标转换为国家2000大地坐标系。 01工程坐标系 从地图窗口右下角的状态栏可以看到当前地图窗口的坐标系,即工程坐标系(Project CRS)。当前地图可以由多个图层组成,各种来源数据的坐标参照系(Layer CRS)并不一定相同,QGIS在绘制图层之前将根据工程坐标系进行动态坐标转换,然后显示在地图画布中。 因此,在处理空间数据的过程中,一定要特别注意...

QGISClass的博客 1万+

基于 Spring Boot 的 Web 三大核心交互案例精讲

本文通过三个经典的 Spring Boot Web 案例,系统讲解了前后端联调的三种核心模式:1. 表单提交:掌握传统 HTML Form 的参数绑定。2. AJAX + Session:实现无刷新登录和服务器端用户状态管理。3. JSON + `@RequestBody`:展示现代 Web 开发中,通过 AJAX 传输 JSON 数据进行复杂数据交互的最佳实践。

此人很懒,什么都留下了...快进来看看吧 5043

KLayout教程(二)编辑不同的形状

首先画一个基础的矩形,然后双击他可以定义他的坐标

集成光电子 1万+

PPT高清导出秘籍:如何轻松设置600dpi图片分辨率

本文详细解析了PPT导出图片模糊的根本原因,并提供了通过修改Windows注册表将导出分辨率从默认的96dpi提升至600dpi的完整教程。该方法能显著提升图片清晰度,满足学术出版与高质量印刷需求,文中还包含效果对比、进阶设置及常见问题解答。

a0b1c2d3的专栏 1321

Spring Boot 之配置导入,不看你会后悔!

我们知道在 Spring Boot 中可以用一个@Configuration配置文件来配置所有 Bean 及其他配置(不会的看这篇文章:Spring零配置之@Configuration注解详解),但其实没必要这么做。 我们可以把相关的配置独立出来,放到多个@Configuration中,如以下参考: MainConfiguration:项目主要配置 DataSourece...

weixin_45919378的博客 251

基于Simulink的轨道交通信号控制系统仿真详细介绍

轨道交通信号控制系统是确保列车安全、高效运行的核心技术。通过Simulink进行信号控制系统的仿真,可以验证系统的设计、优化调度策略并提高安全性。以下是如何在MATLAB和Simulink中设计并仿真一个轨道交通信号控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的轨道交通信号控制系统仿真。该系统能够根据列车位置、速度和轨道状态生成控制指令,确保列车的安全、高效运行。通过虚拟场景仿真、硬件在环测试和实机测试,验证了系统的性能,并通过参数优化进一步提升了系统的可靠性。引入智能调度。

xiaoheshang_123的博客 463

你会写Spring Boot Starter吗

前面写了一篇AOP自定义注解实现接口请求日志记录,可以记录接口请求日志。但是如果其他项目也要实现这个功能的话,就需要把代码原原本本的拷贝一份,这样未免有点麻烦!但我们在使用别人写的某些功能的时候,只需要引入starter依赖就可以了。那么我们可不可以也把这个写成一个starter呢? 创建maven项目 在使用spring-boot-starter,会发现,有的项目名称是 XX-spring-boot-starter,有的是 spring-boot-starter-XX,这个项目的名称有什么讲究呢? 从sp

放羊的砍柴人 237

图文详解Trae配置Java开发环境

本文介绍了Trae开发工具的安装配置流程:首先从官网下载安装Trae,然后安装Java开发所需的Extension Pack for Java和Spring Boot Extension Pack插件。关键步骤包括修改settings.json配置文件,需指定JDK路径、Maven可执行文件路径和用户设置文件路径。所有操作均配有图示说明,并强调要替换为实际电脑路径。

谷哥的小弟 6003

【GlobalMapper精品教程】073:像素到点(Pixels-to-Points)从无人机图像轻松生成点云

Global Mapper v19引入的新的像素到点工具使用摄影测量原理,从重叠图像生成高密度点云、正射影像及三维模型。它使LiDAR模块成为已经功能很强大的的必备Global Mapper扩展功能。打开GlobalmapperV25.1中文版,点击【Lidar分析】→【像素到点云】,如下所示:V25之前的版本点击工具条上的【像素到点】工具:打开工具,可以【使用向导选】,或者选择【使用主窗口】,都很简单。

智慧空间实验室 1978

启动!Spring Boot

Spring Boot是基于Spring框架的轻量级开发工具,旨在简化Spring应用的初始搭建和开发过程。它采用"约定优于配置"原则,提供自动配置、内嵌服务器和starter依赖管理等功能,大大提升了开发效率。核心优势包括开箱即用、无代码生成、准生产环境监控等。 微服务架构是一种将单体应用拆分为独立小型服务的架构风格。每个服务可独立开发部署,通过轻量级通信机制交互。相比单体架构,微服务具有技术异构、独立扩展等优势,但也带来分布式系统复杂性等挑战。

weixin_44553952的博客 1010

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1515

JVM与Spring Boot精讲

自定义类加载器允许开发者控制类的加载过程。例如,可以实现一个URL类加载器,用于从网络或其他源加载类。自定义Starter可以方便地将自己的库或功能集成到Spring Boot项目中。开发自定义Starter需要创建一个Maven项目,并添加相应的依赖和配置。

MoneyHacksPro的博客 1037

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Spring Boot Demo基础篇:10分钟搭建你的第一个Spring Boot应用

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本文将以GitHub上的spring-boot-demo项目为例,带你快速上手Spring Boot应用的搭建。 ## 一、准备工作 在开始搭建Spring Boot应用之前,你需要确保以下工具和环境

gitblog_01404的博客 836

IDEA的使用指南

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

上一篇: java多线程超详细到极致的内容!
下一篇: 互联网企业:超详细的Redis笔记,十分钟搞定
Java_Yhua
博客等级 码龄6年 51粉丝 75原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值