当前位置: 首页 > 知识库问答 >
问题:

与bean和应用程序上下文相关的查询。

仉昱
2023-03-14

我正在使用Spring MVC开发一个web应用程序。我想问一些与beans文件和应用程序上下文相关的问题。

>

  • 我有具有对象的类。假设我有一个员工,产品,项目类,其中包含该员工(ID,名称)中的一些对象,产品和项目也是如此。现在我必须为以下对象编写bean,如下所示:

    <bean id="..." class="..."/>
    

    我是否应该为每个类(如employee)创建一个单独的bean文件。xml,产品。或者我应该在一个文件中列出一个bean标记中的所有bean,比如xyz。xml?我们必须提到诸如请求、会话等作用域。我们必须在这里提到这一点,只有在写下每个bean或其他地方的时候?

    我们确实有一些方法,比如在数据库中添加员工或删除一些条目。我们需要在bean标记中的任何地方引用它们吗,还是只需要在java类中编写它们?

    我使用JDBC实现了数据库连接。现在我有一个类,我只需要创建一个连接对象并使用它。如何利用它。这样它就可以反复使用。目前,我的数据库连接类如下所示:

    包MyPackage;

    导入java。sql。联系导入java。sql。驾驶员管理器;导入java。sql。结果集;导入java。sql。SQLException;导入java。sql。陈述

    公共类HandleConnections{

    public Connection getConnection()
    {
        Connection con = null;
        try{
            String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        Class.forName(driver);
    
        String db = "jdbc:odbc:Practice_Database";
        con = DriverManager.getConnection(db,"","");
    
        }catch(Exception e){System.out.println(e);}
        return con;
    
    }
    
    
    public void closeConnectionVariables(Connection obj, ResultSet rs, Statement st){
    
        //try {rs.close();} catch (SQLException e) {e.printStackTrace();}
        try {obj.close();} catch (SQLException e) {e.printStackTrace();}
        try {st.close();} catch (SQLException e) {e.printStackTrace();}
        }
    
    }
    

    一旦我把所有bean写在单独的文件或单个文件中。如何在Spring MVC中使用它。如何使用应用程序上下文将其引入项目中。假设我有员工。xml,产品。xml或我有一个文件xyz。xml。我需要在applicationContext中编写什么代码。xml,使一切正常工作。有什么豆工厂的方法我必须写。

    请帮我解决我的问题。。谢谢……:)

  • 共有2个答案

    金泉
    2023-03-14

    对于第三个问题:要创建任何类服务的bean,请在控制器中编写代码,如下所示

    @Controller
    @RequestMapping("eventManagement")
    public class ExamEventController implements ApplicationContextAware {
      private ExamEventServiceImpl eventServiceImpl;
    
      @RequestMapping(value = { "/eventList" }, method = RequestMethod.GET)
      public String listGet(Model model, HttpServletRequest request,
            Locale locale) {
         ExamEvent event=eventServiceImpl.getEventDetails(eventId);
      }
      ...
      ...
      ...
      public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        eventServiceImpl = (ExamEventServiceImpl)applicationContext.getBean("ExamEventService");
     }
    
    }
    

    正如satis提到的,不要为POJO类创建bean。

    吴单鹗
    2023-03-14

    1) pojo不应该被定义为bean。只有服务、存储库和控制器才应定义为bean。

    2) 你不需要在豆子标签中提及。

    3) 使用JDBCTemplate并为其设置数据源。

    4) 您已经为dispatcher servlet设置了contextConfigLocation,如下所示

        <servlet>
            <servlet-name>appServlet</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    
     类似资料:
    • 我多年来一直在使用Spring MVC,我试图理解与Spring Boot的一些关键区别。 你能帮我确认一下吗?或者让我明白我在这里遗漏了什么?

    • 我们如何使用Spring Boot在Web应用程序构建的Web应用程序上下文中找到所有bean。我看到了许多从应用程序上下文中获取bean但不从Web应用程序上下文中获取bean的示例。

    • 问题内容: 回顾这篇文章,列举了使用单例的几个问题, 并看到了使用单例模式的Android应用程序的几个示例,我想知道使用单例而不是通过全局应用程序状态共享的单个实例(将android.os.Application子类化并获取它)是否是一个好主意。通过context.getApplication())。 两种机制都有哪些优点/缺点? 老实说,我希望在此后的Singleton模式与Web应用程序中得

    • 我有一些测试(我没有编写它们,我正在维护它们)使用spring ContextConfiguration注释来提供应用程序上下文: 总之,有几个问题。我不太熟悉spring自定义上下文位置,这些位置不指定file:/或classpath:/。这是什么意思?这个测试类路径上有很多同名的资源。都上膛了吗?如果不是,Spring如何知道要加载哪个? 第二,有没有一种方法可以通过编程方式访问以这种方式连接

    • 我知道我需要在servlet上下文中注册用注释的类,以使webapp可访问。通常,我会按照以下方式来做: 我添加到根应用程序上下文中的所有其他配置类。下面是我的dispatcher初始值设定项通常的样子: 但是当我开始使用WebSockets时,事情变得更有趣了。要使websockets工作,必须将WebSoketConfig.class放到servlet上下文中。下面是我的WebSocketCo

    • 我正在阅读spring framework文档,现在我正在讨论应用程序范围概念。关于这个概念的文档是这样说的: 这有点类似于Spring单例bean,但有两个重要的区别:它是每个ServletContext的单例,而不是每个Spring ApplicationContext的单例 对我来说,不清楚的是我们如何想象Spring应用程序上下文和Servlet上下文之间的关系。 那么,Spring应用程