55分布式电商项目 - SpringBoot例子

简介: 55分布式电商项目 - SpringBoot例子

代码已上传至Github

地址:https://github.com/ylw-github/Spring-Boot-Demo.git

下面讲解Springboot的入门例子

SpringBoot HelloWorld

步骤1. 创建工程Spring-Boot-Demo,添加依赖,内容如下:
<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.pinyougou</groupId>
  <artifactId>pyg-springboot-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 热部署 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
    </dependency>
  </dependencies>
</project>

可以发现发现,我们的工程自动添加了好多好多 jar 包

而这些 jar 包正式我们做开发时需要导入的 jar 包。因为这些 jar 包被我们刚才引入的spring-boot-starter-web 所引用了,所以我们引用 spring-boot-starter-web 后会自动把依赖传递过来。

步骤二: 创建引导类

只需要创建一个引导类 .

package com.pyg.manager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
  //main
  // java -jar pyg-springboot-demo.jar
  public static void main(String[] args) {
    //启动入口
    //1,自动加载内置tomcat服务器环境
    //2,开启项目
    SpringApplication.run(MyApplication.class, args);
  }
}

简单解释一下,@SpringBootApplication 其实就是以下三个注解的总和

  • @Configuration: 用于定义一个配置类
  • @EnableAutoConfiguration : Spring Boot 会自动根据你 jar 包的依赖来自动配置项目。
  • @ComponentScan: 告诉 Spring 哪个 packages 的用注解标识的类 会被 spring 自动扫描并且装入 bean 容器。

我们直接执行这个引导类,会发现控制台出现的这个标识

步骤三: 实现 Hello World 输出

我们现在开始使用 spring MVC 框架,实现 json 数据的输出。如果按照我们原来的做法,需要在 web.xml 中添加一个 DispatcherServlet 的配置,再添加一个 spring 的配置文件。

但是我们用 SpringBoot,这一切都省了。我们直接写 Controller 类。

@RestController
public class PygController {
  @RequestMapping("/hello")
  public String showHello() {
    return "hello ,springboot";
  }
}

我们运行启动类来运行程序

在浏览器地址栏输入 http://localhost:8080/hello 即可看到运行结果

步骤四: 修改 tomcat 启动端口

src/main/resources 下创建application.properties:

server.port=8088

重新运行引导类。地址栏输入http://localhost:8088/hello 即可看到运行结果

步骤五: 读取配置文件信息

在 src/main/resources 下的 application.properties 增加配置

url=http://www.itcast.cn

我要在类中读取这个配置信息,修改 Controller:

@Autowired
private Environment env;
@RequestMapping("/info")
public String info(){
  return "HelloWorld~~"+env.getProperty("url");
}
步骤六: 热部署

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,能不能在我修改代码后不重启就能生效呢?可以,在pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。

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

SpringBoot 整合ActiveMQ

1.使用内嵌服务器

1)在 pom.xml 中引入 ActiveMQ 起步依赖

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

2)创建消息生产者

@RestController
public class QueueController {
  @Autowired
  private JmsMessagingTemplate jmsMessagingTemplate;
  @RequestMapping("/send")
  public void send(String text){
    jmsMessagingTemplate.convertAndSend("itcast", text);
  }
 }

3)创建消息消费者

@Component
public class Consumer {
@JmsListener(destination="itcast")
public void readMessage(String text){
  System.out.println("接收到消息:"+text);
}

测试:启动服务后,在浏览器执行

http://localhost:8088/send.do?text=aaaaa即可看到控制台输出消息提示。Spring Boot 内置了 ActiveMQ 的服务,所以我们不用单独启动也可以执行应用程序。

2.使用外部服务

在 src/main/resources 下的 application.properties 增加配置, 指定 ActiveMQ 的地址

spring.activemq.broker-url=tcp://192.168.25.135:61616

运行后,会在 activeMQ 中看到发送的 queue

3.发送Map信息

1)修改 QueueController.java

@RequestMapping("/sendmap")
public void sendMap(){
  Map map=new HashMap<>();
  map.put("mobile", "13900001111");
  map.put("content", "恭喜获得 10 元代金券");
  jmsMessagingTemplate.convertAndSend("itcast_map",map);
}

2)修改 Consumer.java

@JmsListener(destination="itcast_map")
public void readMap(Map map){
  System.out.println(map);
}



目录
相关文章
|
2天前
|
NoSQL Java Redis
Springboot使用Redis实现分布式锁
通过这些步骤和示例,您可以系统地了解如何在Spring Boot中使用Redis实现分布式锁,并在实际项目中应用。希望这些内容对您的学习和工作有所帮助。
112 83
|
8天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
29 16
|
9天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
37 18
|
23天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
36 5
|
28天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
132 64
SpringBoot项目打war包流程
|
1月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
136 36
|
2月前
|
缓存 NoSQL Java
Spring Boot中的分布式缓存方案
Spring Boot提供了简便的方式来集成和使用分布式缓存。通过Redis和Memcached等缓存方案,可以显著提升应用的性能和扩展性。合理配置和优化缓存策略,可以有效避免常见的缓存问题,保证系统的稳定性和高效运行。
78 3
|
3月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
214 53
|
3月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
53 0
|
3月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
79 2