Spring Boot入门(上)

一. 框架介绍
1.创建 独立的、生产级别的、基于Spring应用 更简单。2
2.提供了一种简洁的方式,最小化配置 和 第三方的库结合。-- starter。

二. 特性
1.独立的Spring应用。
2.嵌入式的tomcat、jetty、undertow,不用去部署war包。
3.starter,简化配置。
4.自动化的第三方库配置。
5.生产级别的,metrics, health check,其他配置。
6.没有代码生成,不需要xml配置。

三. Spring Boot与Spring MVC的区别
1.Spring Framework (Spring 框架)Spring Core、Spring Context,AOP,tx,MVC,数据库访问。
2.Spring MVC(Web支持)-- Spring Framework的一部分。
3.Spring Boot -- 和 Spring Framework、Spring Cloud 都是平级关系,没有包含关系。

四. Spring Boot初始化工具
1.进入官网https://start.spring.io/,配置下载即可
2.使用idea,步骤File -> new - Spring Initializr 
关键步骤:
    开发语言 Java、Maven。输入maven坐标。
    选依赖
    可以直接运行含有main方法的SpringBootDemoApplication,也可以mvn clean package 得到target目录下的jar包,通过java -jar xxx.jar 来运行,不依赖 tomcat、jetty等。

五. Spring Boot 配置文件
支持两种形式的配置文件:
application.properties -- 简单
application.yml -- 可以有层级结构
示例:

server:
  port: 8081

login-url: http://127.0.0.1:8081/hello

com:
  example:
    demo:
      account:
        password: admin
        username: 123456

六. Spring Boot WEB支持

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

七. Spring Boot AOP
加依赖:

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


使用:
 

package com.example.demo.springboot.aop;

import java.lang.annotation.*;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Log {
}
package com.example.demo.springboot.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LogAspect {
    @Pointcut("@within(com.example.demo.springboot.aop.Log) || @annotation(com.example.demo.springboot.aop.Log)")
    public void pointcut() {

    }

    @Around("pointcut()")
    public Object around(ProceedingJoinPoint point) throws Throwable {
        long begin = System.currentTimeMillis();
        Signature signature = point.getSignature();
        Object[] args = point.getArgs();

        try {
            Object result = point.proceed();
            long cost = System.currentTimeMillis() - begin;
            System.out.println("signature: " + signature + " , args: " + args + " , result: " + result + ", cost:" + cost + "ms.");
            return result;
        } catch (Throwable e) {
            long cost = System.currentTimeMillis() - begin;
            System.out.println("signature: " + signature + " , args: " + args + " , error: " + e + ", cost:" + cost + "ms.");
            throw e;
        }
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值