简介 目录 评价 推荐
  • qq_离夕_03503692 2022-01-26
    idea中,spring的日志怎么打开
    0回答·399浏览
  • qq_离夕_03503692 2022-01-26
    构造器注入与setter注入分开使用

    设值注入有如下优点:


    设值注入需要该Bean包含这些属性的setter方法

    与传统的JavaBean的写法更相似,程序开发人员更容易理解、接收。通过setter方法设定依赖关系显得更加只管。

    对于复杂的依赖关系,如果采用构造注入,会导致构造器国语臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化器依赖的全部实例,因而导致性能下降。而使用设值注入,则能避免这些问题

    尤其是在某些属性可选的情况况下,多参数的构造器显得更加笨重


    构造注入也不是绝对不如设值注入,在某些特定的场景下,构造注入比设值注入更加优秀。


    构造注入有以下优势:

    构造注入需要该Bean包含带有这些属性的构造器

    构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。例如,组件中其他依赖关系的注入,常常要依赖于DataSrouce的注入。采用构造注入,可以在代码中清晰的决定注入顺序。

    对于依赖关系无需变化的Bean,构造注入更有用处。因为没有Setter方法,所有的依赖关系全部在构造器内设定。因此,无需担心后续的代码对依赖关系产生破坏。

    依赖关系只能在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。对组件的调用者而言,组件内部的依赖关系完全透明,更符合高内聚的原则。

      建议:采用以设值注入为主,构造注入为辅的注入策略。对于依赖关系无需变化的注入,尽量采用构造注入;而其他的依赖关系的注入,则考虑采用设值注入。

    1回答·465浏览
  • 叫我老8 2022-01-16
    付费课程咨询
    0回答·393浏览
  • Rose3331847 2021-10-27
    空指针异常
    2回答·598浏览
  • 慕粉0853559769 2021-06-18
    空指针异常
    0回答·588浏览
  • qq_精慕门8009526 2021-05-26
    需要先掌握哪些基础?

    java基础

    1回答·585浏览
  • 慕后端5126377 2021-05-22
    【spring版本问题】

    看 Spring - Autowired 的文档,从 2.5 版本开始就一直支持 Autowiring Arrays, Collections, and Maps。

    https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html

    不知道你用的哪个版本,但 2.5 以后应该都支持。

    1回答·640浏览
  • weixin_精慕门2109823 2021-05-19
    求大腿帮忙解决一下, 执行@Before("pointcut()")时,总是出错.
    0回答·515浏览
  • JY_耿耿 2021-05-01
    UnitTestBase中的API都被弃用

    一些成立很久的公司还在使用

    1回答·578浏览
  • 慕桂英6568714 2021-04-15
    为什么报一下错误

    已解决

    1回答·580浏览
  • qq_慕无忌7576923 2020-11-28
    学习spring需要有什么基础

    java

    1回答·706浏览
  • 慕码人7551565 2020-11-27
    class UnitTestBase 完整代码

    package com.imooc.test.base;


    import org.junit.After;

    import org.junit.Before;

    import org.springframework.context.support.ClassPathXmlApplicationContext;


    public class UnitTestBase {

    String springXmlPath;

    ClassPathXmlApplicationContext context;

    public UnitTestBase() {}

    public UnitTestBase(String springXmlPath){

    this.springXmlPath = springXmlPath;

    }

    @Before

    public void before(){

    if("" == springXmlPath){

    springXmlPath = "classpath*:spring-*.xml";

    }

    try{

    context = new ClassPathXmlApplicationContext(springXmlPath.split("[,\\s]+"));

    context.start();

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    @After

    public void  after(){

    context.destroy();

    }

    public <T extends Object > T getBean(String beanId){

    try{

    return (T) context.getBean(beanId);

    }catch(Exception e){

    e.printStackTrace();

    return null;

    }

    }


    }


    1回答·470浏览
  • weixin_慕粉5047571 2020-07-27
    最后那个错误不解释一下吗
    已采纳 慕妹0092458 的回答

    http://img.mukewang.com/5f1f957c0001887606350121.jpg


    http://img2.mukewang.com/5f1f95bf00015cec08890108.jpg


    由于配置文件中使用的name是injectionDAO 但构造方法中使用的是injectionDAO1,两遍名称也必须保持一致

    3回答·718浏览
  • 慕神7268400 2020-06-01
    跳跃太快了吧,开头都没说
    1回答·746浏览
  • 慕粉18755117234 2020-04-23
    为啥我的前置通知出现了好几次的?
    0回答·877浏览
  • weixin_慕斯7415096 2020-04-06
    如何知道在哪个类里找全局方法
    2回答·599浏览
  • 慕姐6232974 2020-04-02
    求解hello方法在java.lang.String报错的解决方法

    完整代码呢


    1回答·987浏览
  • 张工 2020-03-10
    ​@PreDestroy注解是初始化后回调方法,@PreDestroy注解是销毁前回调方法,它两是不是也算是初始化和销毁的一种了?
    1回答·1530浏览
  • qq_青菜白玉汤_1 2020-01-16
    使用@bean和@Configuration标签下的bean实例是属于一个新的IOC容器?还是对应的xml文件的IOC容器

    属于一个新的IOC容器

    1回答·812浏览
  • qq_F_130 2020-01-09
    视频一卡一卡

    换个浏览器试试

    2回答·975浏览
  • qq_青菜白玉汤_1 2020-01-04
    长度的返回值

    我试了个csdn上的页面,可以正常返回长度

    2回答·688浏览
  • Truth123 2020-01-03
    太多注释说明,有点乱,谁能帮我总结以下所有@。。。的用途吗?
    已采纳 阿阿影 的回答

    springboot中的常用注解有:@SpringBootApplication、@Repository、@Service、@RestController、@ResponseBody、@Component、@ComponentScan等等。

    1、@SpringBootApplication

    这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以Spring Boot提供了一个统一的注解@SpringBootApplication。

    2、@EnableAutoConfiguration

    允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。

    如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。

    @EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector,其核心逻辑为selectImports方法,逻辑大致如下:

     ● 从配置文件META-INF/spring.factories加载所有可能用到的自动配置类;

     ● 去重,并将exclude和excludeName属性携带的类排除;

     ● 过滤,将满足条件(@Conditional)的自动配置类返回;

    3、@Configuration

    用于定义配置类,指出该类是 Bean 配置的信息源,相当于传统的xml配置文件,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。

    4、@ComponentScan

    组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。

    @ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。

    5、@Repository

    用于标注数据访问组件,即DAO组件。

    使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

    6、@Service

    一般用于修饰service层的组件

    7、@RestController

    用于标注控制层组件(如struts中的action),表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器;它是@Controller和@ResponseBody的合集。

    8、@ResponseBody

    表示该方法的返回结果直接写入HTTP response body中

    一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

    9、@Component

    泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

    10、@Bean

    相当于XML中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

    11、@AutoWired

    byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

    当加上(required=false)时,就算找不到bean也不报错。

    12、@Qualifier

    当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用

    13、@Resource(name="name",type="type")

    没有括号内内容的话,默认byName。与@Autowired干类似的事。

    14、@RequestMapping

    RequestMapping是一个用来处理请求地址映射的注解;提供路由信息,负责URL到Controller中的具体函数的映射,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

    15、@RequestParam

    用在方法的参数前面。例:

    @RequestParam String a,相当于request.getParameter("a")。

    16、@PathVariable

    路径变量。参数与大括号里的名字一样要相同。

    17、@Profiles

    Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。

    任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

    18、@ConfigurationProperties

    Spring Boot可使用注解的方式将自定义的properties文件映射到实体bean中,比如config.properties文件。

    19、@MapperScan

    指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类,添加位置:是在Springboot启动类上面添加。

    20、@Controller

    用于标记在一个类上,使用它标记的类就是一个SpringMvc Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。

    21、@Param

    地处Dao层,是为了传递多个参数,解决的是可读性和直观性。

    22、@ApiModel

    描述返回对象的意义,用在返回对象类上,在实体类上边使用,标记类是swagger的解析类。

    23、@ApiModelProperty

    使用在被 @ApiModel 注解的模型类的属性上,添加和操作模型属性的数据

    24、@Transactional

    声明式事务管理 编程中使用的注解,可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。用来设置事务的传播行为、隔离规则、回滚规则、事务超时、是否只读。

    25、@Override

    伪代码,表示重写,Java中的。

    26、@Scheduled

    用来配置到方法上来完成对应的定时任务的配置,如执行时间,间隔时间,延迟时间等等,下面我们就来详细的看下对应的属性配置。


    2回答·873浏览
  • qq_青菜白玉汤_1 2020-01-02
    getbean()方法内的参数含义是什么如何确定我想要的类的对象

    A类中引用B类 ,在注入IOC容器的时候,B类成为A类的成员属性/或者构造传入

    1回答·1357浏览
  • 慕容9569281 2019-12-19
    配置Spring的问题

    可以的

    1回答·830浏览
  • qq_解泼泼_0 2019-12-10
    spring什么版本的呀

    依赖包在课程资源里有,所有的包可以在课程资源源码项目里面拷贝

    1回答·778浏览
  • 用户1080741 2019-11-10
    ClassPathXmlApplicationtext输入字符就报错

    抛出异常了吧,应该是构造函数中的appl.xml配置文件有可能不存在所以会报异常。捕获或者抛出一下异常就可以了

    1回答·575浏览
  • 我是真的烦 2019-09-23
    bean named"oneInterface" 未定义
    2回答·798浏览
  • 慕码人1187127 2019-09-20
    no tests found with test runner 'JUnit4'

    http://img3.mukewang.com/5d8b696e0001abc912640484.jpg

    http://img1.mukewang.com/5d8b696e0001088612610472.jpg

    都是和视频中一模一样的吧,我下载的源代码文件


    2回答·4325浏览
  • 曼言 2019-08-24
    快捷注释是怎么弄得呀...
    2回答·790浏览
  • OHi1969836 2019-07-23
    public 接口Dao 变量Dao;

    多态的一种体现  运行类多态   会在运行的时候进行关系绑定   引用类指向实体类  调用的还是实体类的方法

    所以  Father father = new Son();    father是引用对象  son是实际被创建的对象  

    4回答·731浏览
数据加载中...
开始学习 免费