java - 尝试在没有IDE注释的情况下实现基于javaconfig方法的spring

标签 java spring

嗨,我正在尝试使用 @configuration 实现 spring 3.2 示例注释:

  1. 我已经编写了我的服务接口(interface):intf.java
  2. 实现的服务接口(interface):impl.java
  3. 编写的 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/

相关文章:

spring - 如何使用 spring boot 为我的文件创建永久目录

java - 根据其他排放量订阅

java - 如何在Wowza服务器的publish方法中停止流媒体

java - Spring MVC - 在 Controller 上设置初始化属性

java - 日期未正确插入数据库

java - Spring MVC 和 jQuery 自动完成

java - 在java中使用keyAdapter和keyEvent时出错

Java 从 int 到 char 的转换表现得很奇怪

java - 如何将 Json 解析为另一个 Activity

java - JSP :forward on button Click()(when target jsp is under web-inf folder) 中的问题