嗨,我正在尝试使用 @configuration
实现 spring 3.2 示例注释:
- 我已经编写了我的服务接口(interface):intf.java
- 实现的服务接口(interface):impl.java
- 编写的 Appconfig 类正在取代基于 xml 的方法 注入(inject)bean
这里我用@configuration
注释了Appconfig类.
编写了一个方法来创建 impl.java
的实例并返回 intf 作为引用
用 @Bean(name="hw")
注释此方法.
使用了这两个导入:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
4.编写带有Main方法的类
这里我创建了ApplicationContext
的实例使用AnnotationConfigApplicationContext
鉴于我的Appconfig.class
作为上下文引用中的参数,称为 getBean
方法“hw
”已转换并在 intf ref 上接收 intf 引用,调用我的服务方法。
使用过的进口产品是:
import org.springframework.context.ApplicationContext;<br>
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
将类路径设置为spring-context-3.2.8.RELEASE.jar
我收到如下编译错误:
AppConfig.java:1: error: package org.springframework.context.annotation does not exist
import org.springframework.context.annotation.Bean;
^
AppConfig.java:2: error: package org.springframework.context.annotation does not exist
import org.springframework.context.annotation.Configuration;
^
AppConfig.java:5: error: cannot find symbol
@Configuration
^
symbol: class Configuration
ConfigReadMain.java:1: error: package org.springframework.context does not exist
import org.springframework.context.ApplicationContext;
^
ConfigReadMain.java:2: error: package org.springframework.context.annotation does not exist
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
^
AppConfig.java:10: error: cannot find symbol
@Bean(name="HW") ^ symbol: class Bean
location: class AppConfig
ConfigReadMain.java:7: error: cannot find symbol
ApplicationContext actxt = new AnnotationConfigApplicationContext(AppConfig.class);
^
symbol: class ApplicationContext location: class ConfigReadMain
ConfigReadMain.java:7: error: cannot find symbol
ApplicationContext actxt = new AnnotationConfigApplicationContext(AppConfig.class);
^
symbol: class AnnotationConfigApplicationContext
location: class ConfigReadMain
HelloWorldImpl.java:3: error: printHelloWorld(String) in HelloWorldImpl cannot implement printHelloWorld(String) in HelloWorldInf void printHelloWorld(String msg){
^
attempting to assign weaker access privileges; was public
9 errors
最佳答案
9 个编译错误中的 8 个似乎是因为 spring-context
JAR 不在您的类路径中。我知道您的问题表明您已将其放在类路径中,但编译错误表明情况并非如此。你用什么来编译?您是否使用不同的技术来编辑代码和构建代码? (例如,在 Eclipse 中编辑,但在 Ant 中构建。)如果是这样,请确保该 JAR 位于这两种技术的类路径上。
最后一个似乎是因为您将接口(interface)方法声明为公共(public),但您的实现类不是公共(public)的。 (也许它是默认的,也许是 protected ,也许是私有(private)的,我们无法知道,因为您没有发布该代码,但无论哪种方式,只需将其公开即可。)
关于java - 尝试在没有IDE注释的情况下实现基于javaconfig方法的spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768353/