精华内容
下载资源
问答
  • 一、前言: 了解 Spring Boot 必须先...用过 Spring 框架的都知道 Spring 能流行是因为它的两把利器:IOC 和 AOP,IOC 可以帮助我们管理对象的依赖关系,极大减少对象的耦合性,而 AOP 的切面编程功能可以更方面...

    一、前言:

    了解 Spring Boot 必须先说说 Spring 框架!在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大。用过 Spring 框架的都知道 Spring 能流行是因为它的两把利器:IOC 和 AOP,IOC 可以帮助我们管理对象的依赖关系,极大减少对象的耦合性,而 AOP 的切面编程功能可以更方面的使用动态代理来实现各种动态方法功能(如事务、缓存、日志等)。而要集成 Spring 框架,必须要用到 XML 配置文件,或者注解式的 Java 代码配置。无论是使用 XML 或者代码配置方式,都需要对相关组件的配置有足够的了解,然后再编写大量冗长的配置代码。然后又有多少开发人员能精通这些配置呢?如果我们只提供一些配置参数让框架能自动配置这些组件,那是不是 so easy?基于简化 Spring 快速上手为目的,Spring Boot 框架诞生了!

    二、什么是 Spring Boot?

    Spring Boot是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置。Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。Spring Boot不但能创建传统的 war 包应用,还能创建独立的不依赖于任何外部容器(如:tomcat)的独立应用,使用 java -jar 命令就能启动。同时,Spring Boot也提

    展开全文
  • SpringBoot优缺点总结

    万次阅读 2018-07-12 20:07:17
    SpringBoot核心功能   spring-boot-starter: Spring... spring-boot-starter-aop: 支持AOP面向切面编程的功能,包括spring-aop和AspecJ spring-boot-starter-cache: 支持Spring的Cache抽象 spring-boot-starter...

    SpringBoot核心功能

     

    • spring-boot-starter: Spring Boot的核心启动器,包含了自动配置、日志和YAML
    • spring-boot-starter-aop: 支持AOP面向切面编程的功能,包括spring-aop和AspecJ
    • spring-boot-starter-cache: 支持Spring的Cache抽象
    • spring-boot-starter-artermis: 通过Apache Artemis支持JMS(Java Message Service)的API
    • spring-boot-starter-data-jpa: 支持JPA
    • spring-boot-starter-data-solr: 支持Apache Solr搜索平台,包括spring-data-solr
    • spring-boot-starter-freemarker: 支持FreeMarker模板引擎
    • spring-boot-starter-jdbc: 支持JDBC数据库
    • spring-boot-starter-Redis: 支持Redis键值储存数据库,包括spring-redis
    • spring-boot-starter-security: 支持spring-security
    • spring-boot-starter-thymeleaf: 支持Thymeleaf模板引擎,包括与Spring的集成
    • spring-boot-starter-web: 支持全栈式web开发,包括tomcat和Spring-WebMVC
    • spring-boot-starter-log4j: 支持Log4J日志框架
    • spring-boot-starter-logging: 引入Spring Boot默认的日志框架Logback

    1、独立运行Spring项目
    Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。
    2、内嵌servlet容器
    Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。
    3、提供starter简化Maven配置
    spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入如图5-1所示的依赖包。
    4、自动装配Spring 
    SpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot灭有提供支持,则可以自定义自动配置。
    5、准生产的应用监控
    SpringBoot提供基于http ssh telnet对运行时的项目进行监控。
    6、无代码生产和xml配置  

     

    SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。

     

     

     

    SpringBoot优缺点
    优点:

    1. 创建独立的Spring应用程序

    2. 嵌入的Tomcat,无需部署WAR文件

    3. 简化Maven配置

    4. 自动配置Spring

    5. 提供生产就绪型功能,如指标,健康检查和外部配置

    6. 绝对没有代码生成并且对XML也没有配置要求


    缺点:
    1、如果你不认同spring框架,也许这就是缺点。
    2、SpringBoot特性
    3、创建独立的Spring项目
    4、内置Tomcat和Jetty容器
    5、提供一个starter POMs来简化Maven配置
    6、提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等
    7、完全没有代码生成和xml配置文件

     

     

     

    SpringBoot CLI

    SpringBoot CLI 是SpringBoot提供的控制台命令工具。

     

    SpringBoot maven 构建项目
    spring-boot-starter-parent:是一个特殊Start,它用来提供相关的Maven依赖项,使用它之后,常用的包依赖可以省去version标签。

     

    SpringBoot几个常用的注解

    (1)@RestController和@Controller指定一个类,作为控制器的注解 ,并说明其区别
    (2)@RequestMapping方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉 
    (3)@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器
    (4)@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类,完成元数据bean的初始化。
    (5)@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上 
    (6)@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。 
    (7)@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean
    (8)@Component类级别注解,用来标识一个组件,比如我自定了一个filter,则需要此注解标识之后,Spring Boot才会正确识别。


    springboot是如何管理事务的?直接写@transactional注解就行,在方法就是方法事务,类上就是类事务

    展开全文
  • spring-Aop相关- 动态aop和静态aop区别

    千次阅读 2018-05-03 11:39:14
    切入点源码关系简单图示:文字阐述如下:pointcut切入点来源之一:配置的代理接口时,注册代理接口bean的class 为:org.springframework.aop.support.NameMatchMethodPointcutAdvisor 名称匹配切入点通知其父类实现的...

    切入点源码关系简单图示:


    文字阐述如下:

    pointcut切入点来源之一:配置的代理接口时,注册代理接口bean的class 为:

    org.springframework.aop.support.NameMatchMethodPointcutAdvisor 名称匹配切入点通知
    其父类实现的接口里,有方法 Pointcut   getPointcut() ,返回值为Pointcut
    package org.springframework.aop;
    public interface PointcutAdvisor extends Advisor {
    	Pointcut getPointcut();
    }

    1 、 进入org.springframework.aop.Pointcut  ,

    public interface Pointcut {
    	ClassFilter getClassFilter();
    	MethodMatcher getMethodMatcher();
    	Pointcut TRUE = TruePointcut.INSTANCE;
    }

    切入点:实质是规则,即根据类和方法决定在什么地方织入通知。它有两个层面的过滤器:

    1) 类层面的过滤器,通过类过滤切面[先在类层面判断能不能加通知,如果不能加,则不会看方法匹层面过滤器,所以类层面的优先级高;]

    2)方法层面过滤器,通过方法过滤切面

    2  、类层面过滤器:从pointcut进入类过滤器classfilter,classfilter接口决定了一个类是否符合通知的要求,实现该接口的类决定了以参数传递进来的类是否应该被通知,实现该接口的类一般根据类名决定,但不一定必须这样。此外,该接口包含一个内置的实现,是规范的,适用于任何类的classfilter实例,该实现恒成立,适用于只根据方法决定是否符合要求的切入。

    public interface ClassFilter {
    	boolean matches(Class<?> clazz);
    	ClassFilter TRUE = TrueClassFilter.INSTANCE;}

    3  、方法层面过滤器:进入方法匹配器类MethodMatcher,看到如下源码:

    package org.springframework.aop;
    import java.lang.reflect.Method;
    public interface MethodMatcher {
    	boolean matches(Method method, Class<?> targetClass);
    	boolean isRuntime();
    	boolean matches(Method method, Class<?> targetClass, Object[] args);
    	MethodMatcher TRUE = TrueMethodMatcher.INSTANCE;
    }

    根据目标的类和方法决定是否应该被通知,因为可以静态的判断,所以可以在aop代理被创建的时候调用一次这个方法,该结果决定通知是否被织入。如果返回TRUE,在代理创建时,运行一次 boolean isRuntime();判断是运行时的吗?即判断该切入点是动态切入点还是静态切入点,是判断参数具体值,来判断通知是否应该被织入(这里知道,动态每次运行都要判断,所以静态性能高)。如果此时返回false,则下面方法永远不会被调用, 

    boolean matches(Method method, Class<?> targetClass, Object[] args); 

    如果返回的是true,则需要根据运行时的参数决定方法是否被通知。


    总结:

    总结之前先说下切入点,它决定了一个特定类的特定方法是否满足一定的规则。如果符合规则,就将通知应用到该方法上。

    静态切入点和动态切入点的区别:

    静态切入点特点是通知总是被执行,和方法参数没关系;

    动态切入点要根据运行时的参数决定方法是否被通知,这样会增加系统负担,所以尽量避免使用动态切入点。

    静态切入点:通知总是执行。

    动态切入点:根据运行时参数值的变化。

    展开全文
  • spring的优缺点

    2021-03-11 12:13:14
    它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,...

    它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫

    你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不

    同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,

    等等

    优点

    a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,

    Spring致力于解决剩下的问题。

    b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对

    象的程度。

    c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类

    要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性

    。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。

    d.? 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。

    e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

    f.      使用Spring构建的应用程序易于单元测试。

    g.      Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响

    调用代码。

    h.      Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提

    供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

    i.      Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。

    Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。

    缺点:使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器

    展开全文
  • go和java的优缺点

    千次阅读 2021-03-08 14:43:08
    用时相对较长 函数返回值和接口 返回多个,接口的实现不需要过多依赖 函数值不能支持多个返回,强制你必须oop, 接口的实现必须要有依赖, 无数的设计模式和各种ioc和aop框架来支撑这语言的不足 垃圾回收机制 不是很...
  • 他们各有优缺点。 jdk动态代理 jdk动态代理是jdk自带的,所以使用它不需要额外导入jar包,它是基于反射机制实现的,当需要代理的真实类继承了接口时,spring默认使用jdk动态代理。 cglib动态代理 cglib动态代理需要...
  • java注解优缺点

    2021-03-17 15:05:48
    优点:1、节省配置,减少配置文件大小2、编译时即可查看正确与否,提高效率缺点:1、增加了程序的耦合性,因为注解保存在class文件中,而且比较分散2、若要对配置进行修改需要重新编译@autowired 注解时,@Qualifier...
  • spring两种事物,编程式事务和声明式事务 ...声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提...
  • 一、SSM优缺点应该分开来说的,比如 1)spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。 2)spring mvc,是对比struts2等mvc框架来说的,不...
  • xmlns:aop ="http://www.springframework.org/schema/aop" xmlns:tx ="http://www.springframework.org/schema/tx" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation =...
  • Spring注解配置和xml配置优缺点比较在昨天发布的文章《spring boot基于注解方式配置datasource》一文中凯哥简单的对xml配置和注解配置进行了比较。然后朋友看到文章后,就问:那你说说这两种区别。额,说真的,还真...
  • AOP与OOP有什么区别,谈谈AOP的原理是什么 心理分析:一旦问到aop面试官在开发自己的项目中 肯定是用到了aop切面编程的。这个时候求职者需要格外注意,特别是aop 在编译时的性能优势,apk编译的原理讲起。切勿将aop...
  • 它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(控制反转),DI( 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量...
  • 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为...
  • 这两种事务,都有各自的优缺点,那么,各自有哪些适合的场景呢?为什么有人会拒绝使用声明式事务呢? 声明式事务的优点 通过上面的例子,其实我们可以很容易的看出来,声明式事务帮助我们节省了很多代码,他会自动...
  • Spring介绍及其优缺点

    2020-08-24 11:45:37
        Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于...Spring是一个轻量级控制反转(IoC)和面向切面(AOP
  • 代理模式最典型的应用就是AOP,本文结合主要讲解了代理模式的几种实现方式:静态代理和动态代理,这里动态代理又可以分为jdk代理和Cglib代理,另外,本文也对这几种代理模式的优缺点进行了对比。 代理,顾名思义,即...
  • 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能  5.容器提供了众多的辅助类,能加快应用的开发  6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 
  • 三大框架的优缺点

    千次阅读 2015-10-21 21:01:06
    Struts优缺点优点: 1.开源软件,能更深入的了解其内部实现机制。 2.Taglib标记库,灵活动用,能大大提高开发效率。 3.页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这...
  • springMVC有独立的AOP拦截机制。 三、性能方面  1.spring MVC几乎实现了零配置,在配置了基本的东西之后,再编写controller类和方法时,只需加上注解即可,无需频繁修改配置文件,而struts2的机制让他无法使用注解...
  • 提升:IOC AOP 集成能力(JDBC模板等)。 1.方便解耦,简化开发。 IOC :集中管理对象,对象和对象之间的耦合度降低,方便维护对象。 AOP:再不修改代码的情况下可以对业务代码进行增强,减少...缺点: 门槛较高..
  • ssh优缺点

    2021-02-28 07:00:55
    面试归来技术面试官叫我谈谈 ssh优缺点平时用起来倒是挺顺手..但是从来没有系统的总结过..导致很多点会都没有说出来..这次我认真总结了一下...常说的好处 开源常说的坏处 配置文件过大我就不提了struts优点:收集,...
  • SSM和Springboot框架比较的优缺点

    万次阅读 2019-01-16 20:31:25
    一、SSM优缺点应该分开来说的,比如 1)spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。 2)spring mvc嘛,是对比struts2等mvc框架来说的,不...
  • 1、Spring是是开源框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。1)IoC(Inversion of Control)控制反转,对象...
  • 点击关注公众号,实用技术文章及时了解来源:juejin.cn/post/6844903672061624327这篇文章准备从Java的代理机制讲到Spring的AOP。1.代理模式代理模式...
  • Spring的工作原理和优缺点

    千次阅读 2014-05-27 10:55:10
    Spring真正的精华是它的Ioc模式实现的BeanFactory和AOP,它自己在这个基础上延伸的功能有些画蛇添足。  Ioc模式是什么  可伸缩性和重/轻量,谁是实用系统的架构主选?  Spring它是一个开源的项目,而且...
  • Spring AOP 知识点 & 实现机制

    千次阅读 2016-08-15 13:00:10
    Spring AOP 一、关于AOP 1. 什么是 AOP? Aspect Orentied Programming:面向切面编程 Object Orentied Programming:面向对象编程 AOP 编程是以 OOP 为基础,OOP 侧重点是对象抽象和封装,AOP 侧重点时共通...
  • 一面 自我介绍 项目中的监控:那个监控指标常见的有哪些?...AOP 和 IOC 的原理 Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别? Spring Cloud 有了解多少? Spring Bean 的生命周期 HashMap 和 has

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,301
精华内容 6,520
关键字:

aop优缺点