Servlet Spring SpringBoot SpringCloudのすべての違い

背景

最近javaのフレームワークを見て、春と春の雲の間を行ったり来たりしています。これらのフレームワーク間の関係を明確にするために、各サンプルプログラムは明確に記述されています。以下では、これらの概念を詳細に紹介します

サーブレット

Servlet是指Java语言实现的一个接口。其实通俗讲,就是把url访问映射到相应的servlet类。最明显的使用就是要自己实现Servlet接口。

···
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 使用 GBK 设置中文正常显示
        response.setCharacterEncoding("GBK");
        response.getWriter().write("菜鸟教程:http://www.runoob.com");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}·

Springは多くのコンポーネントを持つ複雑なフレームワークです。春によってもたらされた変更を比較するには、例としてspringMVCを使用します。APIの実現についても同じです。Springのコアコードは以下の通りです。

@Controller
public class helloworld
{
    @RequestMapping("/click")
    public String hello()
    {
        System.out.println("hellowolrd");
        return "result";
    }
}

Springを使用した後に必要なコードが実際に大幅に削減されていることがわかります。ただし、使用中は構成が複雑になります。私たちには、configure servlet.xmlに必要
など

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

        <!-- 配置自动扫描的包 -->
        <mvc:annotation-driven/>
        <context:component-scan base-package="com.spring.handlers">
        <!--context:include-filter type="annotation" expression="com.spring.handlers.helloworld"/-->
        </context:component-scan>

        <!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 -->
       <!--prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀), -->
    <!-- 比如传进来的逻辑视图名为result,则该该jsp视图页面应该存放在“/WEB-INF/result.jsp”  -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name = "prefix" value="/WEB-INF/"></property>
            <property name = "suffix" value = ".jsp"></property>
        </bean>
</beans>

Springboot

Springの構成は比較的複雑で扱いにくいので、この操作を簡略化するのに役立つSpringbootフレームワークがあります。同時に、springbootはパッケージ化時にtomcatを直接パッケージ化することもできるため、展開が容易になります。Springbootのコアコード

/**
 *  * @SpringBootApplication:标注一个主程序类,用来标明这是一个Spring Boot应用
 *   */
@SpringBootApplication
public class SpringBootApplicationMain {
    public static void main(String[] args) {
     SpringApplication.run(SpringBootApplicationMain.class, args);
    }
}
@RestController
public class HelloWorldController {

    @RequestMapping("/hello")
    public String say(){
        return "Spring Boot";
    }
}

Springbootはこれらを記述するだけでよく、サーブレットを構成しなくても同じ効果を得ることができます。

飛躍雲

springcloudは実際にマイクロサービスソリューションの完全なセットを提供します。マイクロサービスを参照すると、springclcoudが各プログラムをマイクロサービスにカプセル化していることがわかります。したがって、springcloudは実際には多くのSpringbootを実行するアプリケーションソリューションと見なすことができます。
ここの例は、springcloudのアプリケーション登録センターの例を開始します。

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

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

まとめ

これから、サーブレットが春の土台であることがわかります。
springbootは、Springの構成を簡素化し、それをマイクロサービスとしてカプセル化します。
springcloudは、マイクロサービス用の一連のソリューションです。
特定のコード例については、
https://github.com/ssdxiao/spring-learn を参照してください

オリジナルの記事を6件公開 Likes0 訪問者10,000以上

おすすめ

転載: blog.csdn.net/ssdxiao0/article/details/100156372