繁体   English   中英

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

[英]Queries related to beans and application Context.

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

  1. 我有具有对象的类。 假设我有一个员工、产品、项目类,该员工(ID、名称)中有一些对象,产品和项目也是如此。 现在我必须像这样为以下 object 编写 bean:

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

    我应该为每个 class 创建一个单独的 bean 文件,例如 employee.xml、product.xml,还是应该在单个文件中的一个 beans 标签中列出所有 bean,比方说 xyz.xml。 我们必须提到像请求、会话等范围。我们必须只在写下每个 bean 或其他地方时才在这里提到它?

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

  3. 我有一个涉及使用 JDBC 的数据库连接。现在我有一个 class,我只需建立连接 object 并使用它。 如何制作一个豆子。 这样它就可以一次又一次地使用。 目前我的数据库连接 class 是这样的:

    package 我的包裹;

    导入 java.sql.连接; 导入 java.sql.DriverManager; 导入 java.sql.ResultSet; 导入 java.sql.SQLException; 导入 java.sql.Statement;

    公共 class 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();} } }
  4. 一旦我完成了将所有 bean 写入单独文件或单个文件的操作。 如何在 Spring MVC 中使用它。 如何使用 Application Context 将其引入项目。 假设我有 employee.xml、product.xml 或者我有一个文件 xyz.xml。 我需要在我的 applicationContext.xml 中编写什么代码,以便一切正常。 是否有任何我必须编写的 bean 工厂方法。

请帮我解决我的问题..谢谢... :)

1) POJO 不应定义为 beans。只有服务、存储库、控制器应定义为 beans。

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

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

4) 您已经像这样为您的调度程序 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>

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

@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");
 }

}

如前所述,不要为 POJO class 创建 bean。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM