[ anaxim @ 13.11.2014. 21:05 ] @
Ovih dana radim na jednoj internoj android aplikaciji za koju mi je potreban REST backend.
Spring boot 1.1.8 mi se ucinio kao odlicno resenje za to, ali celi dan provedoh muceci se sa osnovnim stvarima kao
sto je konfigurisanje data sourca koji ce biti dostupan svim JDBCTemplate klasama u aplikaciji.

U aplication.propertiesu sam podesio parametre db servera i dodao sam u pom.xml postgresql jdbc driver

spring.datasource.url=jdbc:postgresql://localhost/database
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driverClassName=org.postgresql.Driver

Bezuspesno sam pokusavao da dobijem DataSource instancu koja je kreirana na osnovu parametara iz ovih podesenja.
Prema spring boot konfiguraciju taj DataSource bi trebao da je instanca tomcat data sourca koji podrzava pooling
i trebao bi da je ok za produkciju.

Zvanicni primer iz dokumentacije mi nije resenje jer koristi SimpleDataSource koji nije pogodan za produkciju kako
je navedeno u samoj dokumentaciji.

Sta je best practice u ovom slucaju. Kreirati klasu u kojoj cu drzati konfiguraciju i sve parametre ili postoji nacin
da dobijem DataSource koji je automatski konfigurisan na osnovu application.propertiesa?
[ nemnesic @ 13.11.2014. 21:23 ] @
Mi smo nesto radili slicno radili ovako: http://javaee.ch/2013/10/27/sp...ing-mysql-jpa-and-annotations/

Code:

@Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(databaseDriver);
        dataSource.setUrl(databaseUrl);
        dataSource.setUsername(databaseUsername);
        dataSource.setPassword(databasePassword);
        return dataSource;
    }

[ anaxim @ 14.11.2014. 07:38 ] @
Hvala puno. Mislio sam da ću uspeti da pronađem kako da povučem taj default data source kreiran na osnovu application.propertiesa ali držaću se onda principa konfigurisanja u klasama.

Mozda je do mene jer nisam navikao na Spring dokumentaciju ali nekako mi je štura i nedorečena, a ne nađoh dobru Spring 4 knjigu.

Postoji li neki drugi framework sa 'boljom' dokumentacijom? Šta se u JavaEE svetu trenutno najviše koristi u produkciji?
[ nemnesic @ 14.11.2014. 19:58 ] @
Mislim da je dokumentacija malo drugacija od tipicne JAVA docukentacije. Ali mislim da je solidna.
Ja vec duze vreme koristim Grails. Grails 3 ce biti baziran na Spring Boot.
Trenutna verzija Grails-a je 2.4.4.
[ anaxim @ 17.11.2014. 08:27 ] @
Definitivno ću pogledati i Grails, mada ovaj projekat ću uraditi koristeć Javu i Spring Boot. Hvala još jednom.
[ nemnesic @ 19.11.2014. 02:15 ] @
Na kakvom projektu radis ako nije tajna?
[ anaxim @ 27.11.2014. 19:10 ] @
Izvini sto ranije ne odgovorih.

Radi se kao sto rekoh o REST apiju za posojeci 'informacioni sistem' koji mi je potreban kako bih uradio internu iOS aplikaciju za prijem robe, proveru cena i sl. Spring Boot mi je bio odlicno resenje jer ne bih nikada imao vise od 50 do 100 zahteva pp minutu,
[ Dragan @ 27.11.2014. 22:22 ] @
Da li si u pom dodao:

"If you use the spring-boot-starter-jdbc or spring-boot-starter-data-jpa ‘starter POMs’ you will automcatically get a dependency to tomcat-jdbc."

Takodje, pretpostavljam da ti main klasa ima @EnableAutoConfiguration (+ @Configuration). Mozes ukljuciti --debug switch po pokretanju aplikacije pa ces u logu dobiti info sta je auto konfiguracija zakljucila...
[ anaxim @ 27.11.2014. 22:38 ] @
Kreirao sam DatabaseConfig konfiguracionu klasu koja podesenja cita iz eksternog database.properties fajla. Klasa ima metod koji vra'a DataSource (koristio sam Tomcat-ovu implementaciju jer podrzava connection pooling). Posle sam koristio @Autowired kako bih 'ubacio' taj data source u JdbcTemplate.
[ Dragan @ 27.11.2014. 22:48 ] @
Naravno, moze i tako - no spring boot @EnableAutoConfiguration moze mnogo toga da zakljuci sam skenirajuci classpath i gledajuci sta si konfigurisao.

Ako ti jos treba REST, pogledaj spring data rest projekat i ovaj sample:

spring data rest

Ako u pom.xml-u umesto h2 stavis postgre dependency, i u application.properties konfigurises sta treba, boot ce ti exposovati data source bean automatski.
[ anaxim @ 28.11.2014. 09:06 ] @
Već sam završio applikaciju. Nije bila kompleksna jer su mi trebali podaci bukvalno iz tri tabele.