Springboot简介
Springboot适合用来构建微服务,是典型的约定优于配置,Springboot没有像Spring FrameWork一样,需要配置一堆的文件,一切都是默认配置的,当然如果有需要,Springboot还是提供了而外的配置文件,毕竟生产环境,毕竟复杂多样的需求全部用默认配置是满足不了的。
Springboot的主要特点如下:
- 内嵌servlet容器,可选Tomcat 或者Jetty
- 无需配置文件,按约定即可
- 自带监控工具
好了,下面我们开始来小试一把。
Springboot环境搭建
使用maven来搭建springboot项目。不会maven的可以去稍微学一下。先把pom文件贴出来。
<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>spring-boot-test</groupId>
<artifactId>springboot_test1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_test1</name>
<description>这是springboot第一个测试项目</description>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我选择了使用jetty,而不是默认tomcat,日志使用log4j, 不是默认的logging.
main方法(同时controller也在这里)
package com.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.springboot.service.MyService;
@ComponentScan(basePackages="com.springboot.*")
@Controller
@EnableAutoConfiguration
@RequestMapping("/home")
public class MyApplication {
@Autowired
@Qualifier("myService")
MyService myService;
@ResponseBody
@RequestMapping("/test")
String home() {
myService.test();
return "welcome,baby";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(MyApplication.class, args);
}
}
service类:
package com.springboot.service;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@Component("myService")
public class MyService {
private Logger logger = LogManager.getLogger(MyService.class);
@Autowired
JdbcTemplate jdbcTemplate;
public void test(){
Map<String,Object> map = jdbcTemplate.queryForMap("select * from phone_user limit 1");
System.out.println(map.get("phone")+"");
System.out.println("jdbctemplate working.....");
logger.error("log4jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj");
}
}
application.yml配置文件
server:
port: 8020
address: 127.0.0.1
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true
username: root
password: Mytest
max-active: 50
test-on-borrow: false
maxIdle: 10
minIdle: 2
logging:
file: myspringboot.log
path: target/
level:
root: ERROR
org:
springframework:
web: ERROR