Spring Boot使用参考

一、Spring Boot入门示例

1. 创建一个Maven工程

    Group Id设为com.tuozixuan,ArtifactId设为springboot,Package设为com.tuozixuan.springboot

2. 在Maven工程的pom.xml文件中添加如下配置

  

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>
 
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  

 3. 在com.tuozixuan.springboot包下创建一个Java类

@SpringBootApplication
@RestController
public class Application {

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

	@RequestMapping("/")
	public String index() {
		return "index";
	}
}

 4. 运行Application类,然后访问http://localhost:8080

5. 总结

spring-boot-starter:这是Spring Boot的核心启动器,包含自动配置、日志和YAML

spring-boot-starter-web:支持Web开发,包括Tomcat和Spring Web MVC

@SpringBootApplication:集@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解功能于一身便以大家使用的注解

@RestController:相当于@Controller、@ResponseBody两个注解合在一起的作用

二、Spring Boot常用的启动器及其作用

spring-boot-starter:这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

spring-boot-starter-actuator :帮助监控和管理应用。

spring-boot-starter-amqp :spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。

spring-boot-starter-aop:支持面向方面的编程即AOP,包括spring-aop和AspectJ。

spring-boot-starter-artemis:通过Apache Artemis支持JMS的API(Java Message Service API)。

spring-boot-starter-batch:支持Spring Batch,包括HSQLDB数据库。

spring-boot-starter-cache:支持Spring的Cache抽象。

spring-boot-starter-cloud-connectors:支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。

spring-boot-starter-data-elasticsearch:支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。

spring-boot-starter-data-gemfire:支持GemFire分布式数据存储,包括spring-data-gemfire。

spring-boot-starter-data-jpa:支持JPA(Java Persistence API),包括spring-data-jpa、spring-orm、hibernate。

spring-boot-starter-data-MongoDB:支持MongoDB数据,包括spring-data-mongodb。

spring-boot-starter-data-rest:通过spring-data-rest-webmvc,支持通过REST暴露Spring Data数据仓库。

spring-boot-starter-data-solr:支持Apache Solr搜索平台,包括spring-data-solr。

spring-boot-starter-freemarker:支持FreeMarker模板引擎。

spring-boot-starter-groovy-templates:支持Groovy模板引擎。

spring-boot-starter-hateoas:通过spring-hateoas支持基于HATEOAS的RESTful Web服务。

spring-boot-starter-hornetq:通过HornetQ支持JMS。

spring-boot-starter-integration:支持通用的spring-integration模块。

spring-boot-starter-jdbc:支持JDBC数据库。

spring-boot-starter-jersey:支持Jersey RESTful Web服务框架。

spring-boot-starter-jta-atomikos:通过Atomikos支持JTA分布式事务处理。

spring-boot-starter-jta-bitronix:通过Bitronix支持JTA分布式事务处理。

spring-boot-starter-mail:支持javax.mail模块。

spring-boot-starter-mobile:支持spring-mobile。

spring-boot-starter-mustache:支持Mustache模板引擎。

spring-boot-starter-Redis:支持Redis键值存储数据库,包括spring-redis。

spring-boot-starter-security:支持spring-security。

spring-boot-starter-social-facebook:支持spring-social-facebook

spring-boot-starter-social-linkedin:支持spring-social-linkedin

spring-boot-starter-social-twitter:支持pring-social-twitter

spring-boot-starter-test:支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

spring-boot-starter-thymeleaf:支持Thymeleaf模板引擎,包括与Spring的集成。

spring-boot-starter-velocity:支持Velocity模板引擎。

spring-boot-starter-web:支持全栈式Web开发,包括Tomcat和spring-webmvc。

spring-boot-starter-websocket:支持WebSocket开发。

spring-boot-starter-ws:支持Spring Web Services。

spring-boot-starter-remote-shell:增加了远程ssh shell的支持。

spring-boot-starter-jetty:引入了Jetty HTTP引擎(用于替换Tomcat)。

spring-boot-starter-log4j:支持Log4J日志框架。

spring-boot-starter-logging:引入了Spring Boot默认的日志框架Logback。

spring-boot-starter-tomcat:引入了Spring Boot默认的HTTP引擎Tomcat。

spring-boot-starter-undertow:引入了Undertow HTTP引擎(用于替换Tomcat)。

三、Spring Boot工程操作数据库

1. 在pom.xml文件中对JDBC和MYSQL的依赖配置

    <!-- JDBC支持 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
		
    <!-- MYSQL支持 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

2. 在resources目录下创建application.properties配置文件,并添加数据库配置信息

#datasource config

spring.datasource.url=jdbc:mysql://localhost:3306/coredb

spring.datasource.username=root

spring.datasource.password=password

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3. 编写访问数据的JAVA类UserDao

@Component
public class UserDao {
	
	@Autowired
	private JdbcTemplate jdbcTemplate;
	
	public void getUser() {
		String sql = "select * from ts_user where userName='tuozixuan'";
		Map<String, Object> userMap = jdbcTemplate.queryForMap(sql);
		System.out.println("userName:" + userMap.get("userName"));
	}
}

4. 把UserDao注入到其他地方就可以使用了

@Autowired

private UserDao userDao;

四、日志处理

1. Spring Boot日志默认使用Commons Logging,并为Java Util Logging、Log4J2和Logback提供了默认配置。

2. 日志级别

    默认情况下,日志输出级别为INFO

    日志级别为TRACE时,TRACE、DEBUG、INFO、WARN、ERROR、FATAL的日志信息会输出

    日志级别为DEBUG时,DEBUG、INFO、WARN、ERROR、FATAL的日志信息会输出

    日志级别为INFO时,INFO、WARN、ERROR、FATAL的日志信息会输出

    日志级别为WARN时,WARN、ERROR、FATAL的日志信息会输出

    日志级别设为FATAL时,ERROR和FATAL的日志信息会输出

    日志级别设为OFF时,关闭所有级别的日志信息输出

    可通过在application.properties中添加logging.level.root配置来自定义日志级别,如:

    #可配置项:TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF

    logging.level.root=DEBUG

3. 代码中日志信息的输出

    private Log log = LogFactory.getLog(Application.class);

    log.trace("----------trace----------");

    log.debug("----------debug----------");

    log.info("----------info----------");

    log.warn("----------warn----------");

    log.error("----------error----------");

    log.fatal("----------fatal----------");

4. 日志信息输出到文件

    默认情况下Spring Boot仅在控制台输出日志信息。

    如果要将日志信息输出到文件,可以通过在application.properties中添加logging.file或logging.path配置,如:

    

    logging.file=F:/springboot.log 或 logging.path=F:/

    logging.file配置可以把日志信息输出到自定义的日志文件中,日志文件会在10M大小的时候截断,产生新的日志文件

    logging.path配置可以把日志信息默认输出到spring.log文件中,日志文件会在10M大小的时候截断,产生新的日志文件

5. 使用log4j日志

5.1 在pom.xml文件中加入log4j依赖

    在spring-boot-starter中排除对spring-boot-starter-logging的依赖,并加入log4j的依赖

<!-- 排除对spring-boot-starter-logging的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- 加入log4j的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
  5.2 在resources目录下创建log4j.properties文件,并添加log4j相关配置

log4j.rootLogger=debug,ServerDailyRollingFile,stdout

log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd

log4j.appender.ServerDailyRollingFile.File=F:/springboot.log

log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout

log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%n

log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n

    

猜你喜欢

转载自tuozixuan.iteye.com/blog/2373000