Java 带有组件扫描的简单RestFul Web服务
我正在尝试使用restFul Web服务中的组件扫描自动连接对象。但是在使用userDao对象时获取空指针异常 我不想使用SpringMVC或SpringBoot。只想简单地使用组件扫描注入依赖项。请帮忙 UserDao.javaJava 带有组件扫描的简单RestFul Web服务,java,spring,rest,jax-rs,Java,Spring,Rest,Jax Rs,我正在尝试使用restFul Web服务中的组件扫描自动连接对象。但是在使用userDao对象时获取空指针异常 我不想使用SpringMVC或SpringBoot。只想简单地使用组件扫描注入依赖项。请帮忙 UserDao.java @Component public class UserDao { public List<User> getAllUsers(){ //return a list } } @Component @Path("/UserService")
@Component
public class UserDao {
public List<User> getAllUsers(){
//return a list
}
}
@Component
@Path("/UserService")
public class UserService {
@Autowired
private UserDao userDao;
@PostConstruct
public void initialize() {
System.out.println("userDao object: " + userDao);
}
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers(){
return getUserDao().getAllUsers();
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
@组件
公共类UserDao{
公共列表getAllUsers(){
//返回列表
}
}
UserService.java
@Component
public class UserDao {
public List<User> getAllUsers(){
//return a list
}
}
@Component
@Path("/UserService")
public class UserService {
@Autowired
private UserDao userDao;
@PostConstruct
public void initialize() {
System.out.println("userDao object: " + userDao);
}
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers(){
return getUserDao().getAllUsers();
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
@组件
@路径(“/UserService”)
公共类用户服务{
@自动连线
私有UserDao UserDao;
@施工后
公共无效初始化(){
System.out.println(“userDao对象:+userDao”);
}
@得到
@路径(“/users”)
@产生(MediaType.APPLICATION_JSON)
公共列表getUsers(){
返回getUserDao().getAllUsers();
}
公共UserDao getUserDao(){
返回userDao;
}
公共void setUserDao(UserDao UserDao){
this.userDao=userDao;
}
}
applicationContext.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:context = "http://www.springframework.org/schema/context"
xmlns:aop = "http://www.springframework.org/schema/aop"
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
<context:annotation-config/>
<context:component-scan base-package="com.rest"/>
<aop:aspectj-autoproxy/>
</beans>
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>User Management</display-name>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
web.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:context = "http://www.springframework.org/schema/context"
xmlns:aop = "http://www.springframework.org/schema/aop"
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
<context:annotation-config/>
<context:component-scan base-package="com.rest"/>
<aop:aspectj-autoproxy/>
</beans>
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>User Management</display-name>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
用户管理
Jersey RESTful应用程序
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
com.rest
com.sun.jersey.api.json.POJOMappingFeature
真的
Jersey RESTful应用程序
/休息/*
您需要在applicationContext.xml文件中定义一个bean。Spring容器在应用程序启动时初始化这个bean。
例如
作为类比,您可以将其视为spring正在做的
UserDAO UserDAO=new UserDAO()代码>为您准备。我的Restful Web服务在没有spring的情况下运行良好。现在我需要配置Spring并注入依赖项。如果您不想配置Spring上下文,请查看UserDAO所在的包的名称?所有类都位于com.rest包中,但如果需要使用组件扫描,则可能是这样。那么程序应该是什么呢?