精华内容
下载资源
问答
  • 使用注解装载Bean的步骤: 目录 一、扫描 二、装载 三、注入 一、扫描 两种方式: a.使用注解 @ComponentScan ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfi...

    使用注解装载Bean的步骤:

     

    目录

             一、扫描

    二、装载

    三、注入 


    一、扫描

         两种方式:

              a.使用注解 @ComponentScan

                      ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);

              b.使用XML文件扫描 <context:component-scan base-package="包名">

                       ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");

     

    二、装载

         1. @Configuration:用于定义配置类,并装配进IOC容器中。(装配配置类,类比XML的头)

         2. @Component: 当该类被扫描时,会将对应的类加入到IOC容器中。(装配业务逻辑类)

                                        @Controller :WEB层 @Service :业务层  @Repository :持久层

    .    3. @Bean :  将该方法返回的对象装配到IOC容器中。(装配方法返回的类,类比XML里面的bean)

                            

    三、注入 

          1. @Value("xx"):注入对应的值

          2. @Autowired:从 Spring IOC 容器中自动按类型(ByType)装配(位置:属性,方法,参数前)

                 歧义性(当在有多个实现类的接口用自动装配时):

                        @Primary:优先注入(位置:某一个接口实现类)

                        @Qualifier("某个接口实现类名称"):按照名称(ByName)注入(位置:在@Autowirte下面)

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Springboot错误处理:无法自动装载bean

    千次阅读 2018-12-04 14:22:35
    Idea中开发Springboot应用时,代码编辑器提示:无法自动装载bean。 报错提示 解决方法 在UserDao 类上面,添加@Repository注解 其他附属信息 @Respository 所属包: org.springframework.stereotype.Repository @...

    问题描述

    Idea中开发Springboot应用时,代码编辑器提示:无法自动装载bean。

    报错提示

    报错信息

    解决方法

    在UserDao 类上面,添加@Repository注解

    其他附属信息

    @Respository

    所属包:

    org.springframework.stereotype.Repository
    

    @Repository@Service@Controller,
    它们分别对应存储层Bean,业务层Bean,和展示层Bean

    @Repository 实际上就是告诉Spring,应该为此类创建一个实现类,作为Bean注入到相关类中。

    代码

    • UserDao.java
    @Mapper
    @Repository //添加此注解可以解决UserService中无法自动装配UserDao的问题
    public interface UserDao {
        public PiaUser getUserById( int id);
        public PiaUser getUserByName(String name);
    }
    
    • UserService.java
    @Service
    public class UserService {
        @Autowired
        private UserDao userDao;
    
        public PiaUser getUserById(int id){
            return userDao.getUserById(id);
        }
        public  PiaUser getUserByName(String name){
            return  userDao.getUserByName(name);
        }
    }
    
    展开全文
  • spring IOC反射装载bean

    2017-03-04 15:46:39
    spring基于xml配置加载bean 的demo 了解spring的反射机制
  • 装载Bean失败

    2018-01-17 14:45:08
    Error creating bean with name 'activationController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowi

    日志错误信息:

    Error creating bean with name 'activationController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.service.ActivationMachineService com.controller.ActivationController.activationMachineService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.service.ActivationMachineService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

    检查:1、在controller中有声明并注解自动装载,注意声明不能加static,声明为静态的也报错

      @Autowired
    private ActivationMachineService  activationMachineService;

      2、创建了该接口类

    public interface ActivationMachineService{}

    3、(bug出错在这里)至少有一个实现该接口的类

    报错的:

    @Service
    public class ActivationMachineServiceImpl {}

    修改后:

    @Service
    public class ActivationMachineServiceImpl implements ActivationMachineService{}


    原因:应该注入的ServiceImpl接口实现类并没有实现该接口

    展开全文
  • 1.创建Java工程,导入Spring依赖的Jar包。 2.创建UserBean,包含基本属性及getter()、setter()方法。...4.在Main方法中装载bean,打印信息。 --------------------------------------------------------

    1.创建Java工程,导入Spring依赖的Jar包。

    2.创建UserBean,包含基本属性及getter()、setter()方法。

    3.配置applicationContext.xml文件,基于Setter注入Bean

    4.在Main方法中装载bean,打印信息。

    --------------------------------------------------------------------------------------------------------------------------------------------

    中间可能遇到的问题有:

    1.报错信息:

    java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    解决方式:需要导入commons-logging.jar包
    2.报错信息:
     java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
    
    解决方式:这是由于配置文件加载路径不对造成的,一般配置文件默认在根路径下加载,如果你的配置文件放在了别的路径下,加载的时候需要指明路径,如
    我放在了src/test包内,加载方式为ApplicationContext factory = new ClassPathXmlApplicationContext("/test/applicationContext.xml");

    展开全文
  • xml方式装载bean

    2017-05-10 11:21:02
    bean的属性配置 一直用注解,避免不了读一些代码时别人用配置方式,这里备份下一些用法: bean元素可以有许多属性,其中有两个是必须的:id和class 。如果使用设值注入,则需要使用property子标签,来指定组件的...
  • ![![![图片说明](https://img-ask.csdn.net/upload/201704/15/1492226894_946055.png)图片说明](https://img-ask.csdn.net/upload/201704/15/1492226884_963107.png)图片说明]...
  • Spring-Boot基于配置按条件装载Bean

    千次阅读 2019-01-04 20:23:12
    背景 同一个接口有多种实现,项目启动时按某种规则来选择性的启用其中...看到这里,我们会想到使用SPI机制,或Spring按条件加载Bean机制来实现,下面主要讨论后者。 定义接口 定义2个Service层接口:OrderService、O...
  • Spring中,有BeanFactory和ApplicationContext两个容器用来加载Bean,这两个容器都是通过XML文件配置的。区别在于: BeanFactory容器中,若Bean的一个属性没有注入,那么在业务中调用getBean就会报错。但该容器占用...
  • } } 我们就从AnnotationConfigApplicationContext这个类开始,探究下Spring的IOC容器是如何装载Bean的,源码如下: public AnnotationConfigApplicationContext(Class... annotatedClasses) { this(); register...
  • 使用Qualifier指定注入Bean的名称 实例 对类方法进行标注 实例 小结 对集合类进行标注 实例 对延迟依赖注入的支持 实例 对标准注解的支持 实例 小结使用@Autowired进行自动注入Spring通过@Autowired注解实现Bean的...
  • 如何把一个对象放到Spring容器,交由Spring管理? 加@Component @Import(xx)导入(用于第三方的类) 定义一个FactoryBean(实现FactroyBean接口)(用于第三方的类) 调用BeanFactory的...publi...
  • * @Description: @Import用来导入一个或多个普通类(bean会被spring容器托管),或者配置类(配置类中的bean都会被spring容器托管) * @author Liu * @date 2018年6月10日 下午6:21:28 * */ @ComponentScan @Import...
  • bean工厂延迟加载所以bean,直到getBean()方法被调用的时候才会创建bean的实例对象。 ApplicationContext在启动后预载入所有单例bean,需要的时候直接getBean()取出即可,这样可以确保应用不需要等待他们被创建。 ...
  • 在上一篇中讲了关于怎么在xml中实例化bean,那么,在本篇中我们来看一下java是怎么配置bean的实例化。 第一步 准备 1、新建接口AnimalService,并提供一个eat方法 2、新建接口AnimalService2并提供一个eat方法...
  • //通过注解的方式去装载bean ApplicationContext context = new AnnotationConfigApplicationContext(StudentConfig.class); Student stu = context.getBean(Student.class); System.out.println(stu);
  • 解析XML与装载BeanDefinition 资源定位 resource Spring的配置文件读取是通过ClassPathResource进行封装的,这也正对应了上述方法中的参数,不过 Resource 是一个接口,在此不做过多阐述。 资源预处理 ...
  • 可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是未指定name属性, 默认使用成员属性的变量名,一般不用写name属性. @Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再...
  • spring装载bean的小问题

    2012-03-13 15:32:21
    比如有一个很简单的applicationContext.xml配置文件,里边配置了5个bean, 然后拿到context对象 ApplicationContext context = new ClassPathXmlApplicationContext(); 这时所有bean的属性应该已经注入进去了吧? ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,624
精华内容 12,249
关键字:

装载bean