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

不做百度了 百度做的网站请牢记此域名

不做百度了 百度做的网站,请牢记此域名,东莞开发一个app多少钱,营销师资格证报名官网SpringBoot:javaweb的一个框架,基于Spring开发,SpringBoot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷的开发新一代基于Spring框架的应用程序,它与Spring框架紧密结合用于提升Spring开发者体验的…

SpringBoot:javaweb的一个框架,基于Spring开发,SpringBoot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷的开发新一代基于Spring框架的应用程序,它与Spring框架紧密结合用于提升Spring开发者体验的工具。

主要优点:

  • 为所有Spring开发者更快的入门。
  • 提供各种默认配置来简化项目的配置。
  • 内嵌式容器简化web项目。
  • 没有冗余代码生成XML配置的要求。

项目搭建

注意使用的JDK版本,此处需要JDK17才能完成创建,若使用的是JDK8,那需要降低SprnigBoot版本。

法一:在Spring官网中下载,然后将jar包解压,使用idea打开,idea会自动下载jar包

法二:IDEA集成了网站,可以在idea中直接创建一个新项目。

降低版本后测试:

测试环境:

编写Controller类,注意包要放到与启动类同级才能够被识别。其中/hello是接口,作用是接收前端参数,调用业务。

pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--有一个父项目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><url/><properties><java.version>1.8</java.version></properties><dependencies><!--springboot的依赖都是使用Spring-boot开头--><!--web依赖,集成tomcat、dispatcherServlet、xml--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><!--单元测试--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><!--打jar包的插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

项目元数据信息:创建时候输入的Project.Metadate部分,也就是Maven项目的基本元素,包括groupid、artfactid、version、name、description等。

paent:继承spring-boot-starter-parent的依赖管理,新版本与打包等内容。

dependencie:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口。使用SpringMVC构建Web应用程序,使用Tomcat作为默认嵌入式容器。

build:构建配置部分,默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把SpringBoot应用打包成JAR来直接运行。

可以更改启动时的小图标,利用banner:Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.net

修改端口号:

原理

pom.xml文件中

spring-boot-dependencies:核心依赖在父工程中。

自动导入web环境所有的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

当我们需要使用某种功能时,只需要找到对应的启动器。

主程序

注解@SpringBootApplication标注这个类是一个springboot的应用

//本身就是Spring的一个组件
//启动类
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

注解:

  • @SpringBootConfiguration        //springboot的配置     
    • @Configuration   //表明该类是一个配置类
      • @Component    //表明这是一个Spring组件

  • @EnableAutoConfiguration      //自动配置
    • @AutoConfigurationPackage     //自动配置包

      • @Import({Registrar.class})
        public @interface AutoConfigurationPackage {
            String[] basePackages() default {};

            Class<?>[] basePackageClasses() default {};
        }     //自动配置包注册

    • @Import({AutoConfigurationImportSelector.class})  //自动导入选择
      • List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);   //获取所有的配置

获取候选的配置

protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");return configurations;}

自动配置的核心文件:META-INF/spring.factories

Properties properties = PropertiesLoaderUtils.loadProperties(resource);//所有资源加载到配置类中

springboot的所有自动配置都在启动类中被扫描和加载,spring.factories文件中包含了所有的自动配置类,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器,有了启动器,我们的自动装配就会生效,就会配置成功。

  1. springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值。
  2. 将自动配置的类导入容器,自动配置就会生效,会进行自动配置。
  3. 以前我们配置的东西,现在SpringBoot帮我们完成。
  4. 整个javaEE,解决方案和自动配置的东西都在spring-boot-autoconfig这个包下。
  5. 该包会把所有需要导入的组件以类名的方式返回,这些组件就会被添加到容器。
  6. 容器中存在非常多的xxxAutoConfiguration的文件,就是这些类给容器导入了这个场景需要的所有组件,并自动装配。@Configuration  javaConfig
  7. 有了自动配置类,免去了我们手动编写配置文件的工作。

ymal语法

SpringBoot使用一个全局的配置文件,配置文件可以是

  • application.properties
    • 语法结构:key=value
  • application.yaml
    • 语法结构:key:空格value

配置文件的作用:修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了。

格式对比:

yaml文件可以存储对象(yaml对空格要求严格),properties只能存储键值对。

给实体类赋值

编写Dog实体类:注意:使用注解来写get与set方法时,要引入依赖Lombok

@Component  //把该类添加到Spring组件
@Data   //get、set、无参
@NoArgsConstructor  //显式无参
@AllArgsConstructor //有参
public class Dog {
private String name;
private Integer age;
}
@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
}

一般给Dog实体类赋值

测试:

使用yaml赋值:

@ConfigurationProperties作用:将配置文件中配置的每一个属性的值,映射到这个组件中,告诉SpringBoot将本类中的所有属性和配置文件只能相关的配置进行绑定。

(prefix = "person"):将配置文件中的person下面的所有属性一一对应。

使用配置文件绑定的时候,需要添加依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

配置文件配置:使用场景:编写配置类。

松散绑定

yaml中的last-name和lastName是一样的。UUID是随机生成唯一标识符

JSR303效验

在字段增加一层过滤器验证,保证数据的合法性。

在前端<input type="email">中,用户只能输入email形式的内容,但是用户可以绕过前端直接提交数据。使用JSR303效验规范数据格式。

例如:效验email形式的数据

添加依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>    

在实体类中写校验:

常用的JSR303约束注解

JSR303规范内置了一系列的约束注解,用于对数据进行校验,例如:

  • @NotNull:确保字段不为null

  • @Min@Max:确保数字值在一定的范围内

  • @Size:确保字符串的长度在指定的范围内

  • @Email:确保字段是一个电子邮件地址

  • @Pattern:确保字符串符合正则表达式


文章转载自:

http://Yu1WZb5Q.jfjfk.cn
http://crm11uoB.jfjfk.cn
http://rRUbSyLB.jfjfk.cn
http://3YVQKAvo.jfjfk.cn
http://X4DyHRDo.jfjfk.cn
http://uv9mh7Br.jfjfk.cn
http://lXPhOn2l.jfjfk.cn
http://RGd3Cn8a.jfjfk.cn
http://PQYdxBPG.jfjfk.cn
http://3TLHecP8.jfjfk.cn
http://QOTLXTPQ.jfjfk.cn
http://GihlZTCw.jfjfk.cn
http://rgj7IEWk.jfjfk.cn
http://jMvx3EV7.jfjfk.cn
http://mh7zjRTC.jfjfk.cn
http://wzYLm7im.jfjfk.cn
http://Cye4nxpR.jfjfk.cn
http://NsMY1rzo.jfjfk.cn
http://lubObYx9.jfjfk.cn
http://qfXML75U.jfjfk.cn
http://lxVwaqyy.jfjfk.cn
http://QXSAV4mo.jfjfk.cn
http://VJSiQR29.jfjfk.cn
http://hgBuZvxr.jfjfk.cn
http://UvZOntH8.jfjfk.cn
http://LND7dHDk.jfjfk.cn
http://O0o6urYy.jfjfk.cn
http://uTHNKX7N.jfjfk.cn
http://uziw893e.jfjfk.cn
http://hyzAcVT0.jfjfk.cn
http://www.dtcms.com/wzjs/684691.html

相关文章:

  • 网站建设和后台空间管理关系网络营销存在的问题及解决对策
  • wordpress一键发布河北网站优化
  • 在施工过程中某施工企业的安全网站代码优化方法
  • 商城类网站建设多少钱.htaccess wordpress cdn
  • 如何做微信官方网站多产品网站怎么做企业网站
  • 用win2008做网站邢台做网站公司排名
  • 网站策划图让百度收入 wordpress
  • 怎么做电影网站不违法建立网站ftp
  • 58同城如何发布网站建设贵州建设工程招投标协会网站
  • 团风网站建设交易平台网站建设策划书
  • 网站的数据库有什么用宿迁做网站大公司
  • 网站建设方案维护郑州设计公司汇总
  • 用dedecms做的网站 脚本是什么企业信息平台查询
  • 广州哪个大学做网站制作好些的seo新手教程
  • 营销型网站翻译中国腾讯和联通
  • 阿虎手机站wordpress网速卡
  • 万江仿做网站公司网站建设 宁波
  • 网站升级方案网上教育培训机构
  • 惠州房地产网站开发上海公司牌照价格
  • logo图案素材免费网站电商网站如何做优化
  • 棋牌网站建设wordpress作作品集
  • 携程旅游电子商务网站策划书网络规划设计师教程第二版pdf下载
  • 中兴建设云南有限公司网站做类图的网站
  • 企业网站建设方案案例网络广告策划的概念
  • 做彩票网站要多少钱大连开发区图书馆
  • 宝安做棋牌网站建设哪家公司收费合理潍坊建站程序
  • 天津哪里有做网站的移动端首页设计
  • 制作个人免费网站展示设计seo企业培训班
  • 要找做冲压件的厂去哪个网站找微信小程序开发用什么语言
  • WordPress手机站插件株洲seo优化哪家便宜