ApplicationContext是否在spring中自动实例化?
如果像这样定义bean
@Component
public class Car{
...
}
然后我有了我的config类,它告诉spring容器在哪里通过注释@ComponentScan查找bean
@Configuration
@ComponentScan
public class AppConfig {
...
}
spring正在自动创建一个上下文,加载我所有的bean吗?还是我必须以编程方式创建它?如果是这样,我该怎么做,用这样的东西?
@Configuration
@ComponentScan
public class AppConfig {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
context.getBean(Car.class);
...
}
即使这样做,也可能会有一个问题,因为每次我需要上下文时都必须调用新的AnnotationConfigApplicationContext...有什么推荐的方法来实例化上下文,使他在整个项目中可用,也许像spring boot应用程序中的bean一样,我可以自动生成它。
spring boot如何初始化它,加载所有bean并让上下文作为bean可用,准备好自动连线?
不,如果您有一个简单而基本的spring核心
应用程序,应用程序上下文不会自动实例化。此外,如果您不使用@Configuration类显式地创建spring容器/上下文,您的@configuration
类将不会扫描任何内容,也不会创建任何bean。
有几种创建应用程序上下文的方法,但最流行和最传统的是:
applicationcontext context=new ClassPathXmlApplicationContext(applicationcontext.xml)
-暗示您的容器配置在applicationcontext.xml
文件中;applicationcontext context=new AnnotationConfigApplicationContext(configClass.class);
-暗示您的configClass
是@configuration
类。但是,如果您有用@springbootapplication
注释的spring boot应用程序,那么应用程序上下文将自动为您实例化,因为:
@springbootapplication
注释由以下内容组成:
@enableAutoConfiguration
-启用spring boot的自动配置机制;@componentscan
-在应用程序所在的包上启用@component
扫描;@configuration
-允许在上下文中注册额外的bean或导入额外的配置类。这会给你带来更多的线索。
您可以通过main方法中的factory方法获得对spring boot创建的spring上下文的引用:SpringApplication.run(mainclass.class,args);
这将返回对应用程序上下文的引用,您可以将其分配给变量,如下所示:
ApplicationContext context = SpringApplication.run(MainClass.class, args)
我有一个JSF2.0+Spring项目,当我尝试将Spring bean自动集成到JSF bean中时,会遇到一些奇怪的事情。以下是我的ApplicationContext示例: 下面是我的jSF bean的一部分: 部署运行成功,但在我的jsf bean autowired属性映射中,第一个条目是正常的,就像我在applicationContext中配置的一样,但还有很多其他条目被放入map中。
Selenium FindBy注释是否实际实例化了WebElement实例,如果是,使用它们的框架的内涵是什么? 我在我的页面对象中所做的事情现在看起来是这样的。我的所有测试框架方法都将定位器作为参数(而不是WebElement实例)。 我的问题是,在类实例化时使用FindBy实例化WebElement实例吗?如果是这样,那么我怀疑我的框架方法需要使用WebElement实例。这是正确的吗,在框架
我有一个Spring。xml文件,其中列出了所有bean定义,其中我列出了使用bean的所有依赖项、指定的messageSource、dataSource等。此外,我还有一个类ApplicationContext类,其中iam使用上下文获取所有bean。代码为: 我有一个Dao类,其中applicationContext用于访问JDBCtemplate相关bean。我现在必须使用spring MV
我正在按照YouTube的教程来构建一个spring boot应用程序。这个人使用的是lombok,所以他在类的任何字段上都没有注释,他的代码工作得很好。然而,当我尝试相同的操作时,控制台显示服务为空。 适当的代码和输出截图附上以供参考。 }
我正在尝试使用简单的spring启动应用程序。我在ApplicationContext上启动应用程序时遇到问题。 2017-04-26 11:17:31.101警告14528---[main]s.c.a.AnnotationConfigApplicationContext:上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆。工厂未满足的PendencyExcepti
问题内容: 您需要显式创建索引,还是在定义主键时隐式创建索引?MyISAM和InnoDB的答案是否相同? 问题答案: 主键始终被索引。对于MyISAM和InnoDB,这是相同的,并且通常对所有支持索引的存储引擎都是如此。