Files
gls_docs/src/main/java/ch/psi/daq/rest/DaqRestApplication.java
T
Zellweger Christof Ralf c1098a398f ATEST-79:
- implementing first draft of timerange and pulserange queries
- adding tests, again based on an embedded local cassandra instance
2015-06-19 15:14:54 +02:00

52 lines
2.2 KiB
Java

package ch.psi.daq.rest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
/**
* Entry point to our rest-frontend of the Swissfel application which most importantly wires all the @RestController
* annotated classes.
* <p>
*
* This acts as a @Configuration class for Spring. As such it has @ComponentScan annotation that
* enables scanning for another Spring components in current package and its subpackages.
* <p>
* Another annotation is @EnableAutoConfiguration which tells Spring Boot to run autoconfiguration.
* <p>
* It also extends SpringBootServletInitializer which will configure Spring servlet for us, and
* overrides the configure() method to point to itself, so Spring can find the main configuration.
* <p>
* Finally, the main() method consists of single static call to SpringApplication.run().
* <p>
* Methods annotated with @Bean are Java beans that are container-managed, i.e. managed by Spring.
* Whenever there are @Autowire, @Inject or similar annotations found in the code (which is being
* scanned through the @ComponentScan annotation), the container then knows how to create those
* beans and inject them accordingly.
*/
@SpringBootApplication
// @Import(CassandraConfig.class) // either define the context to be imported, or see ComponentScan
// comment below
@ComponentScan(basePackages = {
"ch.psi.daq.rest",
"ch.psi.daq.cassandra.config", // define the package name with the CassandraConfig
// configuration, or @Import it (see above)
"ch.psi.daq.cassandra.reader",
"ch.psi.daq.cassandra.writer"
})
public class DaqRestApplication extends SpringBootServletInitializer {
public static void main(final String[] args) {
SpringApplication.run(DaqRestApplication.class, args);
}
@Override
protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
return application.sources(DaqRestApplication.class);
}
}