gpt4 book ai didi

java - 我应该把 beans.xml 内容放在哪里(Jdbc Connect with Spring-Eclipse Dynamic web application)

转载 作者:行者123 更新时间:2023-11-30 09:18:15 26 4
gpt4 key购买 nike

您好,我是 Spring 的新手,我正在使用 Eclipse Kepler 和 Spring mvc 开发动态 Web 应用程序。我将项目作为动态 Web 项目打开。所以我有 web.xml 和 spring-servlet.xml 配置文件。当我尝试将 mysql 数据集与 jdbc 连接器连接时,我看到在 Beans.xml 文件中有一些关于连接的新 Spring 配置。

所以我有 3 个 xml 配置文件:web.xml、spring-srvlet.xml 和 Beans.xml。我的问题是:我可以将bean.xml 的内容放在web.xml 中吗?或 Spring servlet.xml?如果我这样做,我应该在我的 Controller java 类中做哪些更改,我在该类中调用 Beans.xml 文件。

eclipse 开普勒, Spring 3.2.4 Apache Tomcat 7

任何帮助将不胜感激。

web.xml 内容

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>DomainYonetim</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>

spring-servlet.xml 内容

    <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd


http://www.springframework.org/schema/context


http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan
base-package="Ekle" />

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/domain_yonetim"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/Ekle/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

Beans.xml 内容:

    <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

<!-- Initialization for data source -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/domain_yonetim"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>

<!-- Definition for studentJDBCTemplate bean -->
<bean id="domainJDBCTemplate"
class="Ekle.domainJDBCTemplate">
<property name="dataSource" ref="dataSource" />
</bean>

</beans>

最后是我的 Controller 类:

    package Ekle;

import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.ModelMap;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


@Controller
public class DomainEkleController {


@ModelAttribute("Domain")
public Domain getDomain()
{
return new Domain();
}


@RequestMapping(value="/DomainEkle")
public ModelAndView domainEkle() {

String message = "Hello World, Spring 3.0!";
ModelAndView domain_ekle= new ModelAndView("DomainEkle", "message", message);
return domain_ekle;
}




@RequestMapping(value="/DomainEkle",method=RequestMethod.POST)
public ModelAndView domain_eklendi_fonksiyon(@ModelAttribute("Domain")Domain domain, ModelMap model)
{
ApplicationContext context=new ClassPathXmlApplicationContext("Beans.xml");
DomainJDBCTemplate domainJDBCTemplate=(DomainJDBCTemplate)context.getBean("studentJDBCTempate");

domainJDBCTemplate.listDomains();

model.addAttribute("domain", domain.getDomain_adi());
model.addAttribute("sunucu", domain.getSunucu_no());
model.addAttribute("tarih", domain.getTarih());
System.out.println(domain.getTarih()+"-"+domain.getDomain_adi());
String message="Domain Kaydi Yapilmistir!";
ModelAndView dm_eklendi=new ModelAndView("DomainEkle","message",message);


return dm_eklendi;


}

}

最佳答案

您可以使用如下导入将 beans.xml 中的所有 bean 添加到 spring-servlet.xml。

<import resource="Beans.xml"/>

我还建议您将此文件重命名为一些有意义的名称 - db-context.xml(或类似名称)。

当您使用注解配置时,也不要使用下面的代码,而是当您的上下文已经由 spring mvc 构建时。

ApplicationContext context=new ClassPathXmlApplicationContext("Beans.xml");

改为使用 @Autowired 注释。您还可以另外使用 @Qualifier 注释来选择正确的 bean。如下图。

private DomainJDBCTemplate  domainJDBCTemplate;

@Autowired
@Qualifier("studentJDBCTempate")
public void setDomainJDBCTemplate(DomainJDBCTemplate domainJDBCTemplate) {
this.domainJDBCTemplate = domainJDBCTemplate;
}

并且你的请求处理方法应该直接使用这个模板而不需要再次构建上下文(每次点击url都构建上下文是没有用的!!!!)如下。

@RequestMapping(value="/DomainEkle",method=RequestMethod.POST)
public ModelAndView domain_eklendi_fonksiyon(@ModelAttribute("Domain")Domain domain, ModelMap model)
{
this.domainJDBCTemplate.listDomains();

model.addAttribute("domain", domain.getDomain_adi());
model.addAttribute("sunucu", domain.getSunucu_no());
model.addAttribute("tarih", domain.getTarih());
System.out.println(domain.getTarih()+"-"+domain.getDomain_adi());
String message="Domain Kaydi Yapilmistir!";
ModelAndView dm_eklendi=new ModelAndView("DomainEkle","message",message);


return dm_eklendi;


}

关于java - 我应该把 beans.xml 内容放在哪里(Jdbc Connect with Spring-Eclipse Dynamic web application),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18569778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com