springboot学习:第二天(代码片段)

高智商~哈士奇 高智商~哈士奇     2022-12-01     139

关键词:

三、日志

1、日志框架

小张;开发一个大型系统;

  1、System.out.println("");前期将关键数据打印在控制台;去掉?写在一个文件?

  2、后来框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar;

  3、再后来加高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar?

  4、再后来将以前框架卸下来?换上新的框架,重新修改之前相关的API;zhanglogging-prefect.jar;

  5、JDBC---数据库驱动;

  写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;

  给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层;

市面上的日志框架;

JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....

 

日志门面 (日志的抽象层)日志实现
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-logging Log4j JUL(java.util.logging) Log4j2 Logback

左边选一个门面(抽象层)、右边来选一个实现;

日志门面: SLF4J;

日志实现:Logback;

SpringBoot:底层是Spring框架,Spring框架默认是用JCL;

2、SLF4j使用

1、如何在系统中使用SLF4j https://www.slf4j.org

以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;

给系统里面导入slf4j的jar和 logback的实现jar

详细参考:

logger(七)、springBoot的日志源码查看(LogBack + slf4j)——配置的实际工作类Action 

logger(六)、springBoot的日志源码查看(LogBack + slf4j)—— ContextInitializer  

logger(五)、springBoot的日志源码查看(LogBack + slf4j)——Appender 

logger(四)、springBoot的日志源码查看(LogBack + slf4j)——记录日志   

logger(三)、springBoot的日志源码查看(LogBack + slf4j)——创建Logger  

logger(二)、springBoot的日志源码查看(LogBack + slf4j)——创建ILoggerFactory 

logger(一)、springBoot的日志源码查看(LogBack + slf4j)——对接slf4j 

springBoot的日志配置(LogBack+slf4j)简介   (2021-06-22 10:51)

springboot集成logback日志快速使用   (2021-06-10 16:22)

 

四、Web开发

1、简介

使用SpringBoot;

1)、创建SpringBoot应用,选中我们需要的模块;

2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来

3)、自己编写业务代码;

 

自动配置原理?

这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxx

xxxxAutoConfiguration:帮我们给容器中自动配置组件;
xxxxProperties:配置类来封装配置文件的内容;

2、SpringBoot对静态资源的映射规则:

@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties implements ResourceLoaderAware 
  //可以设置和静态资源有关的参数,缓存时间等
//默认的路径
  private static final String[] CLASSPATH_RESOURCE_LOCATIONS = 
        "classpath:/META-INF/resources/", 
      "classpath:/resources/",   "classpath:/static/",
      "classpath:/public/"
  ;

 

WebMvcAuotConfiguration配置类重要方法:

     //通过webjars的方式添加静态文件   
     @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) if (!this.resourceProperties.isAddMappings()) logger.debug("Default resource handling disabled"); return; Integer cachePeriod = this.resourceProperties.getCachePeriod(); if (!registry.hasMappingForPattern("/webjars/**")) customizeResourceHandlerRegistration( registry.addResourceHandler("/webjars/**") .addResourceLocations( "classpath:/META-INF/resources/webjars/") .setCachePeriod(cachePeriod)); String staticPathPattern = this.mvcProperties.getStaticPathPattern(); //静态资源文件夹映射 if (!registry.hasMappingForPattern(staticPathPattern)) customizeResourceHandlerRegistration( registry.addResourceHandler(staticPathPattern) .addResourceLocations( this.resourceProperties.getStaticLocations()) .setCachePeriod(cachePeriod)); //配置欢迎页映射 @Bean public WelcomePageHandlerMapping welcomePageHandlerMapping( ResourceProperties resourceProperties) return new WelcomePageHandlerMapping(resourceProperties.getWelcomePage(), this.mvcProperties.getStaticPathPattern()); //配置喜欢的图标 @Configuration @ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true) public static class FaviconConfiguration private final ResourceProperties resourceProperties; public FaviconConfiguration(ResourceProperties resourceProperties) this.resourceProperties = resourceProperties; @Bean public SimpleUrlHandlerMapping faviconHandlerMapping() SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping(); mapping.setOrder(Ordered.HIGHEST_PRECEDENCE + 1); //所有 **/favicon.ico mapping.setUrlMap(Collections.singletonMap("**/favicon.ico", faviconRequestHandler())); return mapping; @Bean public ResourceHttpRequestHandler faviconRequestHandler() ResourceHttpRequestHandler requestHandler = new ResourceHttpRequestHandler(); requestHandler .setLocations(this.resourceProperties.getFaviconLocations()); return requestHandler;

 1)、所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源;

 webjars:以jar包的方式引入静态资源;

 

 

 请求路径:

localhost:8080/webjars/jquery/3.3.1/jquery.js

 

<!--引入jquery-webjar-->在访问的时候只需要写webjars下面资源的名称即可
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.1</version>
        </dependency>

2)、"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射

"classpath:/META-INF/resources/", 
"classpath:/resources/",
"classpath:/static/", 
"classpath:/public/" 
"/":当前项目的根路径
不包含:templates

localhost:8080/abc === 去静态资源文件夹里面找abc

3)、欢迎页; 静态资源文件夹下的所有index.html页面;被"/**"映射;

 localhost:8080/ 找index页面

 

踩坑:查找默认index页面的时候,是从上面四个默认的地址查找到

   只有请求返回的地址才会默认在 classpath:/resources/templates 下查找

 

4)、所有的 **/favicon.ico 都是在静态资源文件下找; 

 

3、模板引擎

 JSP、Velocity、Freemarker、Thymeleaf

 

 

SpringBoot推荐的Thymeleaf;

语法更简单,功能更强大;

 

1、引入thymeleaf;

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
              2.1.6
        </dependency>
      切换thymeleaf版本
    <properties>
        <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
        <!-- 布局功能的支持程序  thymeleaf3主程序  layout2以上版本 -->
        <!-- thymeleaf2   layout1-->
        <thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
     </properties>

2、Thymeleaf使用

 

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties 

    private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");

    private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html");

    public static final String DEFAULT_PREFIX = "classpath:/templates/";

    public static final String DEFAULT_SUFFIX = ".html";
      //

只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染;

 

使用:

1、导入thymeleaf的名称空间

<html lang="en" xmlns:th="http://www.thymeleaf.org">

2、使用thymeleaf语法;

 

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>成功!</h1>
    <!--th:text 将div里面的文本内容设置为 -->
    <div th:text="$hello">这是显示欢迎信息</div>
</body>
</html>
@Controller
public class IndexController 
    @RequestMapping("/index")
    public String toIndex(Model model)
        model.addAttribute("hello","hello world!");
        return "index";
    

3、语法规则

1)、th:text;改变当前元素里面的文本内容;

th:任意html属性;来替换原生属性的值

 

 

 

 2)、表达式?

 

Simple expressions:(表达式语法)
    Variable Expressions: $...:获取变量值;OGNL;
            1)、获取对象的属性、调用方法
            2)、使用内置的基本对象:
                #ctx : the context object.
                #vars: the context variables.
                #locale : the context locale.
                #request : (only in Web Contexts) the HttpServletRequest object.
                #response : (only in Web Contexts) the HttpServletResponse object.
                #session : (only in Web Contexts) the HttpSession object.
                #servletContext : (only in Web Contexts) the ServletContext object.
                
                $session.foo
            3)、内置的一些工具对象:
#execInfo : information about the template being processed.
#messages : methods for obtaining externalized messages inside variables expressions, in the same way as they would be obtained using #… syntax.
#uris : methods for escaping parts of URLs/URIs
#conversions : methods for executing the configured conversion service (if any).
#dates : methods for java.util.Date objects: formatting, component extraction, etc.
#calendars : analogous to #dates , but for java.util.Calendar objects.
#numbers : methods for formatting numeric objects.
#strings : methods for String objects: contains, startsWith, prepending/appending, etc.
#objects : methods for objects in general.
#bools : methods for boolean evaluation.
#arrays : methods for arrays.
#lists : methods for lists.
#sets : methods for sets.
#maps : methods for maps.
#aggregates : methods for creating aggregates on arrays or collections.
#ids : methods for dealing with id attributes that might be repeated (for example, as a result of an iteration).

    Selection Variable Expressions: *...:选择表达式:和$在功能上是一样;
        补充:配合 th:object="$session.user:
   <div th:object="$session.user">
    <p>Name: <span th:text="*firstName">Sebastian</span>.</p>
    <p>Surname: <span th:text="*lastName">Pepper</span>.</p>
    <p>Nationality: <span th:text="*nationality">Saturn</span>.</p>
    </div>
    
    Message Expressions: #...:获取国际化内容
    Link URL Expressions: @...:定义URL;
            @/order/process(execId=$execId,execType=\'FAST\')
    Fragment Expressions: ~...:片段引用表达式
            <div th:insert="~commons :: main">...</div>
            
Literals(字面量)
      Text literals: \'one text\' , \'Another one!\' ,…
      Number literals: 0 , 34 , 3.0 , 12.3 ,…
      Boolean literals: true , false
      Null literal: null
      Literal tokens: one , sometext , main ,…
Text operations:(文本操作)
    String concatenation: +
    Literal substitutions: |The name is $name|
Arithmetic operations:(数学运算)
    Binary operators: + , - , * , / , %
    Minus sign (unary operator): -
Boolean operations:(布尔运算)
    Binary operators: and , or
    Boolean negation (unary operator): ! , not
Comparisons and equality:(比较运算)
    Comparators: > , < , >= , <= ( gt , lt , ge , le )
    Equality operators: == , != ( eq , ne )
Conditional operators:条件运算(三元运算符)
    If-then: (if) ? (then)
    If-then-else: (if) ? (then) : (else)
    Default: (value) ?: (defaultvalue)
Special tokens:
    No-Operation: _ 

4、SpringMVC自动配置

官方链接:https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications 

1. Spring MVC auto-configuration

Spring Boot 自动配置好了SpringMVC

以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoConfiguration)

  •  Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans

 

    自动配置了ViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?))

 

 

    ContentNegotiatingViewResolver:组合所有的视图解析器的;

 

 

    如何定制:我们可以自己给容器中添加一个视图解析器;自动的将其组合进来;

 

  • Support for serving static resources, including support for WebJars (see below).静态资源文件夹路径,webjars
  • Static index.html support. 静态首页访问
  • Custom Favicon support (see below). favicon.ico
  • 自动注册了 of Converter, GenericConverter, Formatter beans.

    Converter:转换器; public String hello(User user):类型转换使用Converter

 

    Formatter 格式化器; 2017.12.17===Date;

 

 
        @Bean
        @ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//在文件中配置日期格式化的规则
        public Formatter<Date> dateFormatter() 
            return new DateFormatter(this.mvcProperties.getDateFormat());//日期格式化组件
        

自己添加的格式化器转换器,我们只需要放在容器中即可

  • Support for HttpMessageConverters (see below).

 

    HttpMessageConverter:SpringMVC用来转换Http请求和响应的;User---Json;

 

    HttpMessageConverters 是从容器中确定;获取所有的HttpMessageConverter;

    自己给容器中添加HttpMessageConverter,只需要将自己的组件注册容器中(@Bean,@Component)

  • Automatic registration of MessageCodesResolver (see below).定义错误代码生成规则
  • Automatic use of a ConfigurableWebBindingInitializer bean (see below).

  我们可以配置一个ConfigurableWebBindingInitializer来替换默认的;(添加到容器)

初始化WebDataBinder;
请求数据=====JavaBean;

org.springframework.boot.autoconfigure.web:web的所有自动场景;

If you want to keep Spring Boot MVC features, and you just want to add additional MVC configuration (interceptors, formatters, view controllers etc.) you can add your own @Configuration class of type WebMvcConfigurerAdapter, but without @EnableWebMvc. If you wish to provide custom instances of RequestMappingHandlerMapping, RequestMappingHandlerAdapter or ExceptionHandlerExceptionResolver you can declare a WebMvcRegistrationsAdapter instance providing such components.

2、扩展SpringMVC

 <mvc:view-controller path="/hello" view-name="success"/>
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/hello"/>
            <bean></bean>
        </mvc:interceptor>
    </mvc:interceptors>

编写一个配置类(@Configuration),是WebMvcConfigurerAdapter类型;不能标注@EnableWebMvc

 既保留了所有的自动配置,也能用我们扩展的配置;

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter 

    @Override
    public void addViewControllers(ViewControllerRegistry registry) 
       // super.addViewControllers(registry);
        //浏览器发送 /atguigu 请求来到 success
        registry.addViewController("/atguigu").setViewName("success");
    

原理:

1)、WebMvcAutoConfiguration是SpringMVC的自动配置类

2)、在做其他自动配置时会导入;@Import(EnableWebMvcConfiguration.class)

 

    @Configuration
    public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration 
      private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();

     //从容器中获取所有的WebMvcConfigurer
      @Autowired(required = false)
      public void setConfigurers(List<WebMvcConfigurer> configurers) 
          if (!CollectionUtils.isEmpty(configurers)) 
              this.configurers.addWebMvcConfigurers(configurers);
                //一个参考实现;将所有的WebMvcConfigurer相关配置都来一起调用;  
                @Override
             // public void addViewControllers(ViewControllerRegistry registry) 
              //    for (WebMvcConfigurer delegate : this.delegates) 
               //       delegate.addViewControllers(registry);
               //   
              
          
    

3)、容器中所有的WebMvcConfigurer都会一起起作用;

4)、我们的配置类也会被调用;

效果:SpringMVC的自动配置和我们的扩展配置都会起作用;

3、全面接管SpringMVC;

SpringBoot对SpringMVC的自动配置不需要了,所有都是我们自己配置;所有的SpringMVC的自动配置都失效了

我们需要在配置类中添加@EnableWebMvc即可;

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@EnableWebMvc
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter 

    @Override
    public void addViewControllers(ViewControllerRegistry registry) 
       // super.addViewControllers(registry);
        //浏览器发送 /atguigu 请求来到 success
        registry.addViewController("/atguigu").setViewName("success");
    

原理:

为什么@EnableWebMvc自动配置就失效了;

1)@EnableWebMvc的核心

@Import(DelegatingWebMvcConfiguration.class)
public @interface EnableWebMvc 

2)、

@Configuration
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport 

3)、

@Configuration
@ConditionalOnWebApplication
@ConditionalOnClass( Servlet.class, DispatcherServlet.class,
        WebMvcConfigurerAdapter.class )
//容器中没有这个组件的时候,这个自动配置类才生效
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter( DispatcherServletAutoConfiguration.class,
        ValidationAutoConfiguration.class )
public class WebMvcAutoConfiguration 

4)、@EnableWebMvc将WebMvcConfigurationSupport组件导入进来;

5)、导入的WebMvcConfigurationSupport只是SpringMVC最基本的功能;

5、如何修改SpringBoot的默认配置

模式:

1)、SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)如果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默认的组合起来;

2)、在SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置

3)、在SpringBoot中会有很多的xxxCustomizer帮助我们进行定制配置

 

6、RestfulCRUD

1)、默认访问首页

 

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
//@EnableWebMvc   不要接管SpringMVC
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter 

    @Override
    public void addViewControllers(ViewControllerRegistry registry) 
       // super.addViewControllers(registry);
        //浏览器发送 /atguigu 请求来到 success
        registry.addViewController("/success").setViewName("success");
    

    //所有的WebMvcConfigurerAdapter组件都会一起起作用
    @Bean //将组件注册在容器
    public WebMvcConfigurerAdapter webMvcConfigurerAdapter()
        WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() 
            @Override
            public void addViewControllers(ViewControllerRegistry registry) 
                registry.addViewController("/").setViewName("login");
                registry.addViewController("/index.html").setViewName("login");
            
        ;
        return adapter;
    

2)、国际化

1)、编写国际化配置文件;

2)、使用ResourceBundleMessageSource管理国际化资源文件

3)、在页面使用fmt:message取出国际化内容

 

步骤:

1)、编写国际化配置文件,抽取页面需要显示的国际化消息

 

 

 2)、SpringBoot自动配置好了管理国际化资源文件的组件;

 

@ConfigurationProperties(prefix = "spring.messages")
public class MessageSourceAutoConfiguration 
    
    /**
     * Comma-separated list of basenames (essentially a fully-qualified classpath
     * location), each following the ResourceBundle convention with relaxed support for
     * slash based locations. If it doesn\'t contain a package qualifier (such as
     * "org.mypackage"), it will be resolved from the classpath root.
     */
    private String basename = "messages";  
    //我们的配置文件可以直接放在类路径下叫messages.properties;
    
    @Bean
    public MessageSource messageSource() 
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        if (StringUtils.hasText(this.basename)) 
            //设置国际化资源文件的基础名(去掉语言国家代码的)
            messageSource.setBasenames(StringUtils.commaDelimitedListToStringArray(
                    StringUtils.trimAllWhitespace(this.basename)));
        
        if (this.encoding != null) 
            messageSource.setDefaultEncoding(this.encoding.name());
        
        messageSource.setFallbackToSystemLocale(this.fallbackToSystemLocale);
        messageSource.setCacheSeconds(this.cacheSeconds);
        messageSource.setAlwaysUseMessageFormat(this.alwaysUseMessageFormat);
        return messageSource;
    

 

3)、去页面获取国际化的值;

 

 

 

 

<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta name查看详情  

开始学习python的第二天(代码片段)

一、练习题1.使用while循环输入1234568910#第一种方法count=0whilecount<10:count+=1#count=count+1ifcount==7:print(‘‘)else:print(count)#第二种count=0whilecount<10:count+=1#count=count+1ifcount==7:continueprint(count)2. 查看详情

python学习第二天(下)(代码片段)

继续上次的笔记 ####判断一个元素是否在列表中9innameprint(9inname)会返回一个True或False的结果 if9inname:#判断一个元素是否在列表中print("9isinname")####判断一个元素出现的次数count()方法 name=["Alex","Jack","Rain",9,4,3,5,634,34,89,"Eri... 查看详情

莫烦theano学习自修第二天激励函数(代码片段)

1.代码如下:#!/usr/bin/envpython#!_*_coding:UTF-8_*_importnumpyasnpimporttheano.tensorasTimporttheanox=T.dmatrix(‘x‘)#定义一个激励函数s=1/(1+T.exp(-x))logistic=theano.function([x],s)printlogistic([[0,1],[-2,-3]])# 查看详情

python学习第二天(上)(代码片段)

##课前思想###GENTLEMENCODE1* 着装得体* 每天洗澡* 适当用香水* 女士优先* 不随地吐痰、不乱扔垃圾、不在人群众抽烟* 不大声喧哗* 不插队、碰到别人要说抱歉* 不在地铁上吃东西* 尊重别人的职业... 查看详情

docker的学习第二天(代码片段)

Docker架构图 镜像:image,类似于模板的意思,通过这个模板创建容器服务,如tomcat镜像,---》run--->tomcat1容器,提供给服务器  通过这个镜像可以创建多个容器,最终服务运行或者项目就是在容器中容器:container:Docker... 查看详情

c语言学习第二天(代码片段)

常量字符串常量字符例如:\'f\',\'i\',\'z\',\'a\'编译器为每个字符分配空间。\'f\'\'i\'\'z\'\'a\'字符串例如:"hello"编译器为字符串里的每个字符分配空间以\'\\0\'结束。\'h\'\'e\'\'l\'\'l\'\'o\'\'\\0\'基本类型整数型:shortint,int,longint,longlongin... 查看详情

struts学习之路-第二天(action与servletapi)(代码片段)

Struts作为一款Web框架自然少不了与页面的交互,开发过程中我们最常用的request、application、session等struts都为我们进行了一定的封装与处理一、通过ActionContext获取方法说明voidput(Stringkey,Objectvalue)模拟HttpServletRequest中的setAttribute(... 查看详情

第二天学习进度--文本情感分类(代码片段)

昨天学习了简单的文本处理,之后在课后的练习中实现了包括了对tf-idf的处理和基于朴素贝叶斯简单的文本分类基于tf-idf的数据集在出现多个关键词的时候一般能够相对准确对文本进行分类,但是对于相对具有深层含义的内容,... 查看详情

从零开始学习c语言(第二天)(代码片段)

 今天我学习了C语言的常量分为:字面常量、const修饰的常量、#define定义的标识符常量、枚举常量。字符串、strlen、while字面常量:指的是输入程序中的值。表示数字如:3、5、100、3.14.....#include<stdio.h>intmain() inta&... 查看详情

学习打卡第二天(代码片段)

1importjava.io.IOException;23publicclassIOTest45publicstaticvoidmain(String[]args)6byte[]buffer=newbyte[1024];7try89intlen=System.in.read(buffer);10Strings=newString(buffer,0,len);11System.out.println("接收到了:"+len+"个字节");12System.out.println(s);13System.out.println("字符串长度为... 查看详情

leetcode剑指offer学习计划第二天题目(代码片段)

剑指Offer06.从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例1:输入:head=[1,3,2]输出:[2,3,1]限制:0<=链表长度<=10000所给代码如下/**1.Defini... 查看详情

python3-基础语法篇(第二天)(代码片段)

本篇博文为Python3零基础学习第二天,本篇博文可以学习到如下知识:1.print输出功能2.input输入功能(包含类型转换)3.字符串的格式化4.range功能5.随机模块random6.流程控制语句(顺序语句,分支语句,循环语句–(while循环,break和continue关键... 查看详情

mycat学习第二天之性能监控,读写分离,集群搭建(代码片段)

MyCat1.MyCat性能监控1.1MyCat-web简介1.2MyCat-web下载安装配置1.3MyCat性能监控1.4Mycat-web之MySQL性能监控指标1.5Mycat-web之SQL监控2.MyCat读写分离搭建2.1MySQL主从复制原理2.2MySQL一主一从搭建2.3MyCat一主一从读写分离2.4MySQL双主双从搭建2.5MyCat双... 查看详情

程序老鸟c#学习:3天学会全部基础--第二天(代码片段)

👉关于作者众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找... 查看详情

三天爆肝快速入门机器学习:knn算法朴素贝叶斯算法决策树第二天(代码片段)

三天爆肝快速入门机器学习【第二天】转换器与预估器KNN算法决策树随机森林个人总结转换器与预估器必须理解的转换器与估计器一转化器回想一下之前做的特征工程的步骤?实例化(实例化的是一个转换器类transformer)... 查看详情

django学习第二天(代码片段)

URL的概念及格式:  URL的引入:客户端:知道了url就可以去进行访问;  服务端:设置好了url,别人才能访问到我  URL:网址(全球统一资源定位符);由协议,域名(ipport),路径,参数,锚点等组成  django路由系... 查看详情

3.springboot学习——第一个web应用(代码片段)

1.简介1.1概述SpringBootmakesiteasytocreatestand-alone,production-gradeSpringbasedApplicationsthatyoucan"justrun".WetakeanopinionatedviewoftheSpringplatformandthird-partylibrariessoyoucangetstart 查看详情