RESTful hizmetleri olan bir proje üzerinde çalışıyorum. Web katmanı, iş katmanı ve benzeri modüllerim var. Temel api katmanını (jarse kullanarak) ekledim ve get isteği için temel yanıtı alıyorum. Şimdi onu iş katmanına bağlamalıyım. Ben googling oldu ama her çözümlerimi projeme nasıl uygulayacağından emin değilim.İş katmanından jarse ile temel bağımlılık enjeksiyonu
Bu gezi için benim kaynak sınıftır:
@Path("trip")
public class TripResource {
@Context
private UriInfo context;
@Inject
private AdminService adminService;
public TripResource() {
}
@GET
@Produces("text/plain")
public List<TripDTO> getText() {
return adminService.listAllTrips();
}
}
ve bu kaynaklar sınıfları eklemek için kullanın:
@javax.ws.rs.ApplicationPath("api")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
addRestResourceClasses(resources);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(cz.infi.javatravelagency.ServiceResource.class);
resources.add(cz.infi.javatravelagency.TripResource.class);
}
}
Benim pom.xml:
<name>JavaTravelAgency - Api module</name>
<dependencies>
<dependency>
<groupId>cz.infi</groupId>
<artifactId>javatravelagency-business</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Java language version -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>6</source>
<target>6</target>
</configuration>
</plugin>
<!-- Servlet 3.0 without web.xml -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Denedim answer in this link'u izleyin. Ve ekledim:
public class MyApplicationBinder extends AbstractBinder {
@Override
protected void configure() {
bind(AdminServiceImpl.class).to(AdminService.class);
}
}
ve şimdi takılıyorum.
Bu ciltleyiciyi yapılandırma sınıfıma nasıl ekleyebilirim? Başka hiçbir teknoloji kullanmadan en kolay uygulama nedir?