Spring boot入门(1)

概念

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

spring boot对spring mvc、tomcat等都做了集成,只需要依赖spring boot的jar,通过注解指定主类,然后执行里面的main方法,它就能启动tomcat提供服务。不需要spring mvc的繁琐配置。

使用spring boot时不需要引入spring mvc,tomcat等的依赖,只需要引入spring boot的依赖即可,它会自动寻找spring mvc,tomcat等的合适的版本引入,解决了框架中各种组件版本不一致的问题。

1.开发第一个Spring Boot应用程序

让我们用Java开发一个简单的“Hello World!”Web应用程序,它突出了一些Spring Boot的主要功能。我们将使用Maven来构建这个项目,因为大多数IDE都支持它

在开始之前,打开终端以检查您是否安装了有效的Java和Maven版本。

$ java -version
java版“1.7.0_51”
Java(TM)SE运行时环境(版本1.7.0_51-b13)
Java HotSpot(TM)64位服务器VM(内置24.51-b03,混合模式)
$ mvn -v
Apache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00)
Maven home:/Users/user/tools/apache-maven-3.1.1
Java版本:1.7.0_51,供应商:Oracle Corporation

有效版本要在jdk1.7版本以上,maven版本要在3.2.3以上,如我的版本:
在这里插入图片描述

1.1创建POM

我们需要从创建Maven pom.xml文件开始。这pom.xml是用于构建项目的配方。打开您喜欢的文本编辑器并添加以下内容:

<!-- 继承默认值为Spring Boot -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.17.RELEASE</version>
	</parent>

1.2添加类路径依赖项

于我正在开发一个Web应用程序,我们将添加一个spring-boot-starter-web依赖项

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

1.3编写代码

要完成我们的应用程序,我们需要创建一个Java文件

package com.ps;

import java.util.HashMap;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//@ResponseBody	  表示返回json字符串
@SpringBootApplication
public class Mvc {
	
	@GetMapping("/")
    String home() {
        return "Hello 张三!";
    }
	
	@GetMapping("/hello")
	HashMap<String, String> hello() {
		HashMap<String,String> map = new HashMap<String, String>();
		map.put("name", "张三");
        return map;
    }
	

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

1.3.1 注解

@RestController:集合了@ResponseBody和@Controller两个注解,能同时做到返回一个json对象和扫描该类所在的包下所有带注解的类的效果

@RequestMapping 和他的衍生品 @GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PutMapping
这个注解的作用是当前台界面调用Controller处理数据时候告诉控制器怎么操作。get 对应查询,put 对应更新,post 对应增加,delete 对应删除。
@SpringBootApplication:主要重要是无须在写xml配置文件

1.3.2 运行

直接运行jvm,然后浏览器访问地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:默认端口是8080

2.spring boot集成redis

首先,在pom.xml文件里面加上依赖

<!-- 集成redis -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

测试:

package com.ps;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Redis {
	
	@Autowired
	StringRedisTemplate str;	
	

	@GetMapping("/set")
	public void setStr() {
		str.boundValueOps("name").set("张三");
		redisTemplate.boundListOps("list").leftPushAll("张三","李四","王五");
		str.boundListOps("list").leftPushAll("张三","李四","王五");
	}
	
	@GetMapping("/get")
	public String getStr(String key) {
		
		List<String> range2 = str.boundListOps("list").range(0, 10);
		System.out.println(range2.toString());
		return str.boundValueOps("name").get();
	}
}

同时还要写一个资源文件:application.properties名字固定

#确定服务器的端口
server.port=8085
#确定redis的数据库
spring.redis.database=0
#确定redis连接的ip
spring.redis.host=192.168.0.243
#确定redis的端口
spring.redis.port=6379
#确定redis的密码
spring.redis.password=ps123456

效果图
在这里插入图片描述
在这里插入图片描述
注意:要先启动redis的服务

3.spring boot集成mysql和Druid

加入依赖:

		<!-- 集成mysql -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<!-- mysql驱动包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- 使用druid连接池依赖将默认的c3p0连接池覆盖掉 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
		</dependency>

测试:

package com.ps;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.ColumnMapRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.druid.pool.DruidDataSource;

@RestController
public class Mysql {

	// spring boot默认使用的是c3p0连接池,但是效率没有druid连接池好,所以在这里我使用了druid连接池
	@Autowired   // 这里是druid连接池
	private JdbcTemplate jdbcTemplate;
	
	@GetMapping("/getEmp")
	public List<Map<String, Object>> getMysql() {
		List<Map<String, Object>> query = jdbcTemplate.query("select sal from emp", new ColumnMapRowMapper());
		return query;	
	}
}

application.properties资源文件里加:

spring.datasource.url=jdbc:mysql://localhost:3306/m1dn
spring.datasource.username=root
spring.datasource.password=ps123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.stat-view-servlet.login-username=druid
spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.filter.stat.slow-sql-millis=1

效果图:
在这里插入图片描述

访问:

http://127.0.0.1:8080/druid/index.html 

这是Druid的功能
用户和密码就是在上面application.properties资源文件里的设置的druid和123456
在这里插入图片描述
小知识:spring boot中带有@Configuration注解的类,可以看成是spring boot的配置文件的类

猜你喜欢

转载自blog.csdn.net/wufewu/article/details/84578108