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

时间:2014-07-15 21:19:22

标签: java spring

您好我尝试使用@configuration注释实现spring 3.2示例:

  1. 我写了我的服务接口:intf.java
  2. 实施服务接口:impl.java
  3. 编写的Appconfig类正在取代基于xml的方法 注入豆子
  4. 这里我用@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;
    

    将classpath设置为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
    

2 个答案:

答案 0 :(得分:1)

9个编译错误中的8个似乎是因为spring-context JAR不在您的类路径上。我知道你的问题说你已经在类路径上得到了它,但编译错误提示不然。你用什么来编译?您是否正在使用不同的技术来编辑代码而不是构建代码? (例如,在Eclipse中编辑,但在Ant中构建。)如果是这样,请确保该JAR位于两种技术的类路径中。

最后一个似乎是因为您将接口方法声明为公开但您的实现类不公开。 (也许它是默认的,也许是受保护的,也许是隐私的,我们无法知道,因为你没有发布这些代码,但无论哪种方式,只要公开它,你就会变得很好。 )

答案 1 :(得分:0)

如果您使用命令行编译和管理spring framework application,那么您完全错了!

IDEeclipse spring pluginsSpring Framework 3一起完美地适合您的申请!

如果你问我,我使用上面的所有内容,我几乎设法从我的网络应用程序中获取一些东西,那么你呢?

我的意思是用记事本运行并编译一个hello world应用程序,命令行就可以了,

但是像IDE那样复杂的应用程序,你一定是在开玩笑吧。

现在是时候使用严肃的{{3}}。

<强> Note: All the keywords in my answer are hypertexts to enable you surf instantly a proper site.