Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java applicationContext.xml中bean的声明_Java_Spring_Hibernate_Jsf 2_Javabeans - Fatal编程技术网

Java applicationContext.xml中bean的声明

Java applicationContext.xml中bean的声明,java,spring,hibernate,jsf-2,javabeans,Java,Spring,Hibernate,Jsf 2,Javabeans,我对applicationContext.xml 在applicationContext.xml中,是否需要指定应用程序中的所有类? 例如。 在我的小型web应用程序中,我有一个实体类、服务类和DAO类。所以现在它的定义是 <!-- Beans Declaration --> <bean id="Employees" class="net.test.model.Employees" /> <!-- User Service Declara

我对applicationContext.xml

applicationContext.xml中,是否需要指定应用程序中的所有类? 例如。 在我的小型web应用程序中,我有一个实体类、服务类和DAO类。所以现在它的定义是

<!-- Beans Declaration -->
    <bean id="Employees"
        class="net.test.model.Employees" />

 <!-- User Service Declaration -->
    <bean id="
        EmployeeService" class="net.test.employees.service.EmployeeService">
        <property name="employeesDAO" ref="EmployeeDAOImpl" />
    </bean>

 <!-- User DAO Declaration -->
    <bean id="EmployeeDAO" class="net.test.employee.dao.EmployeeDAOImpl">
        <property name="sessionFactory" ref="SessionFactory" />
    </bean>
我有一个新的注解

@Inject
EmployeesService employeesService;
在EmployeesService中,我有如下注释

@Named
public class EmployeesService implements IEmployeesService {

@Inject
EmployeesDAO employeesDAO;

@Override
public List<Employees> getEmployees() {
    return getEmployeesDAO().getEmployees();
}

获取空指针异常的错误做法是什么?

理想情况下,可以使用另一种方法,这样您就不会在xml中添加多个条目

在applicationContext.xml中,我们是否需要指定 申请表

不需要。除非您需要一个原型(比如初始化它的值),否则像您的
net.test.model.Employees
那样声明模型类是毫无意义的,但您可以直接在类中这样做,然后实例化它

所以,如果我有多个实体、服务和dao类,我需要 在applicationContext.xml中提到所有这些类吗

正如我前面解释的,实体类no.Services和dao是可以的,因为大多数时候需要将dao注入服务(这就是DI的意义)。当然,如果您创建了3个DAO,并且希望将它们注入到3个服务中,那么请在SpringXMLBean定义文件中提及它们(您称之为
applicationContext.XML


但是有一件事,您可能希望使用自动检测并避免在Bean定义文件中写入所有内容。

应用程序上下文中的Bean声明是在应用程序容器中注册Bean

如果bean未注册,容器将无法依赖注入该类的任何实例,或将拦截器应用于该类的对象

因此,除非任何任务都不需要bean的引用,比如拦截它或注入它,或者创建它的默认单例对象,否则不需要在applicationContext.xml中声明它


希望这能有所帮助。

谢谢你的建议。我已经修改了applicationContext.xml和Java bean。我已经在我的问题中添加了更新1。你能告诉我我做错了什么吗?感谢您的意见。我已经为我面临的问题创建了另一个。当做
@Named
public class EmployeesService implements IEmployeesService {

@Inject
EmployeesDAO employeesDAO;

@Override
public List<Employees> getEmployees() {
    return getEmployeesDAO().getEmployees();
}
<context:component-scan base-package="net.test" />
java.lang.NullPointerException at
net.test.managed.bean.EmployeesManagedBean.getEmpList(EmployeesManagedBean.java:53)