springboot的介绍_Springboot的优点

springboot的介绍_Springboot的优点Springboot入门介绍一、Spring框架概述1.1什么是SpringSpring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作《ExpertOne-On-OneJ2EEDevelopmentandDesign》。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的Ja…

大家好,又见面了,我是你们的朋友全栈君。

Springboot入门介绍

一、Spring框架概述

1.1 什么是Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但是Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合性等方面从Spring中获益。

1.2 Spring是如何简化Java开发的

为了降低Java开发的复杂性,Spring采用了以下4种关键策略:

1、基于POJO的轻量级和最小侵入性编程;

2、通过依赖注入(DI)和面向接口实现松耦合;

3、基于切面(AOP)和惯例进行声明式编程;

4、通过切面和模版减少样式代码;

 

二、SpringBoot简介

2.1什么是SpringBoot

Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

2.2、SpringBoot四个主要特性

1SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的MavenGradle构建中;

2、自动配置:SpringBoot的自动配置特性利用了Spring4对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;

3、命令行接口:(Command-line-interface, CLI):SpringBootCLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;

4Actuatir:它为SpringBoot应用的所有特性构建一个小型的应用程序。但首先,我们快速了解每项特性,更好的体验他们如何简化Spring编程模型。

2.3 SpringBoot开发的具体好处

回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要:

1、配置web.xml,加载springspring mvc

2、配置数据库连接、配置spring事务

3、配置加载配置文件的读取,开启注解

。。。

配置完成之后部署tomcat 调试

而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成,这简直是太爽了

华丽的分割线—————————————————————————————————-

三、使用IDEA快速搭建SpringBoot项目

1file->new project 在弹出的窗口选择Spring Initializr

springboot的介绍_Springboot的优点

2、修改项目信息

springboot的介绍_Springboot的优点

3、选择版本及项目需要的依赖

springboot的介绍_Springboot的优点

4、最终目录结构

springboot的介绍_Springboot的优点

 

项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:

  • EurekaServerApplication 一个带有 main() 方法的类,用于启动应用程序
  • EurekaServerApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml Maven 构建说明文件
  •  

四、项目简单介绍及helloworld编写

4.1、写一个helloWorld接口

@RestController
@RequestMapping("/")
public class HelloWorldController {
    @RequestMapping("hello")
    public String index() {
        return "Hello World";
    }
}

@RestController 注解: 该注解是 @Controller @ResponseBody 注解的合体版

 

4.2、单元测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class ServiceAuthApplicationTests {
   private MockMvc mvc;
   @Before
   public void setUp() {
      mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
   }
   @Test
   public void contextLoads() throws Exception {
                mvc.perform(MockMvcRequestBuilders.get("/hello").accept(

        MediaType.APPLICATION_JSON))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andDo(MockMvcResultHandlers.print())
            .andReturn();
   }
}

 

4.3pom文件介绍

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <groupId>com.test</groupId>
    <artifactId>springboot</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>



    <name>spring-cloud-demo</name>

    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.18.BUILD-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


    <pluginRepositories>

        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>

        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>
 

这个标签是在配置 Spring Boot 的父级依赖

有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。

 

4.4、启动类介绍(*Application

@SpringBootApplication
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

@SpringBootApplicationspringBoot的核心注解注解: 该注解是@Configuration@EnableAutoConfiguration@ComponentScan 注解的合体版

 

4.5. properties介绍

springBoot 使用一个全局的配置文件 application.properties application.yml,放置在【src/main/resources】目录

springboot的介绍_Springboot的优点

Tomcat 默认端口设置为 9090 ,并将默认的访问路径从 / 修改为 /test 时,使用 properties 文件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125288.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mybatis 注解开发 + 动态SQL

    Mybatis 注解开发 + 动态SQLHello 大家好我是橙子同学 今天分享注解 Mybatis 注解开发 动态 sql 目录每文一铺垫 今天有小插曲哦 注解开发添加 Insert 删除 Delete 查询 Select 修改 Update 实现结果集封装 Result 实现一对一结果集封装 one 实现多对多结果集封装 Many 动态 SQL 标签 set if 标签 if set

    2025年6月27日
    0
  • 华为工作法摘抄笔记

    1.华为的工作目标管理法永远不要"先干起来再说"写下最初的梦想有时候,工作中忙碌的人正如草原上的羚羊一样。当羚羊被狮子追逐的时候,它们会莫名其妙地停下来,或者直接撞到狮子的

    2021年12月30日
    50
  • 噪声熵和损失熵的定义_归一化信噪比

    噪声熵和损失熵的定义_归一化信噪比利用K-L散度(相对熵)确定VMD分解信号的K值和惩罚因子alpha,得到一组信号分量;计算各个分量的样本熵,根据样本熵的值,选取出噪声主导分量和有效分量;对噪声主导信号进行非局部均值(NLM)去噪;将去噪后的信号分量与剩余的有效信号分量进行重构得到去噪信号。

    2025年6月8日
    0
  • linux下编译和安装log4cxx,ubuntu下log4cxx安装使用「建议收藏」

    linux下编译和安装log4cxx,ubuntu下log4cxx安装使用「建议收藏」需要安装log4cxx,安装的过程中可是充满了坎坷。。。最大的问题是在makelog4cxx时,总是报undefinedXML什么什么的错误,查了一下也没解决了,然后把apr-utils删了重新装了一下就好了。。log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。环境(在以下2个环境中进行验证测试):gcc(Ubuntu4.8.4-2ubuntu1~1…

    2022年6月20日
    22
  • 浮点数 原理_浮点数存储原理

    浮点数 原理_浮点数存储原理1.什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(FixedPointNumber)。在这种表达方式中,小数点固定的位于实数所有数字中间的某

    2022年8月4日
    5
  • 千万别让这些举动断送了你的职业前程-好文共分享[通俗易懂]

    千万别让这些举动断送了你的职业前程-好文共分享

    2022年2月7日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号