1.1 spring
- Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级 Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。
spring的不足 :
1. 虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的, 大量的xml配置文件
2. 开发人员需要自行进行项目的依赖管理, 选择合理版本, 避免冲突, 避免不兼容等问题
以上问题都损耗了大量的写代码的时间 .
1.2 Spring Boot
- Spring Boot 让这一切成为了过去。
- Spring Boot 是 Spring 社区较新的一个项目。该项目的目的是帮助开发者更容易的创建 基于 Spring 的应用程序和服务,让更多人的人更快的对 Spring进行入门体验,为 Spring 生态系统提供了一种固定的、约定优于配置风格的框架。
Spring Boot 具有如下特性:
(1)为基于 Spring 的开发提供更快的入门体验
(2)开箱即用,没有代码生成,也无需 XML配置。同时也可以修改默认值来满足特定的需求。
(3)提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
(4)Spring Boot 并不是不对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
- 目录结构
controller, service, dao必须处于主函数子包中, 因为controller, service, dao必须被spring扫描,扫描后将会被spring容器管理.
- 创建 Maven 工程 springboot-demo(打包方式 jar)
- 在 pom.xml 中添加如下依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <dependencies> <!--springboot项目开发起步依赖坐标--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--springboot热部署(自动编译, 如果是IDEA需要开启自动编译功能)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!-- Spring Boot与 ActiveMQ 整合 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> </dependencies> #修改内置Tomcat的端口配置 server.port=80 #自定义参数 url = http://www.baidu.com #配置自己的activeMQ地址 spring.activemq.broker-url=tcp://192.168.12.66:61616
注意:
1. 文件名必须叫application.properties
2. 需放在resource的根目录下, 默认扫描此包中的application.properties
- 创建引导类
MyAppplication.java, 只需要创建一个引导类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @SpringBootApplication 其实就是以下三个注解的总和 * @Configuration: 用于定义一个配置类 * @EnableAutoConfiguration :Spring Boot 会自动根据你 jar 包的依赖来自动配置项目。 * @ComponentScan: 告诉Spring 哪个 packages 的用注解标识的类会被spring 自动扫描并且装入 bean 容器。 */ @SpringBootApplication public class MyAppplication { public static void main(String[] args) { //入口方法 //1,加载内置tomcat服务器 //2, 引导项目启动环境 SpringApplication.run(MyAppplication.class,args); } } - 创建 UserController.java
import com.pyg.pojo.Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import sun.misc.resources.Messages_pt_BR; import java.util.HashMap; import java.util.Map; @RestController public class UserController { // 注入环境对象, 用于获取配置文件中的参数 @Autowired private Environment env; /** * 需求:springboot入门 */ @RequestMapping("/hello") public String showHello1(){ return "hello,springboot!"; } /** * 需求:Restful风格 */ @RequestMapping("/hello2/{name}") public String showHello2(@PathVariable String name){ return "hello,springboot!"+name; } /** * 需求:获得配置文件 application.properties 文件中的自定义参数 url */ @RequestMapping("/hello3") public String showHello3(){ return "hello,springboot! url = "+env.getProperty("url"); } /** * 需求:展示对象 */ @RequestMapping("hello4") public Person showHello4(){ Person p = new Person(); p.setId(1000); p.setName("张三丰"); return p; } /** * 需求:使用springboot框架内置MQ消息服务器发送及接受消息 * 默认使用 point-to-point 模式 */ //注入消息模板对象 @Autowired private JmsTemplate jmsTemplate; // 发送消息 @RequestMapping("send/{message}") public String sendMessage(@PathVariable String message){ jmsTemplate.convertAndSend("oneQueue",message); return "success"; } // 接收消息 @JmsListener(destination = "oneQueue") public void receiveMessage(String message){ System.out.println("接受消息:"+message); } } 文章来源: Spring Boot 入门