Ciao Massimo .Grazie della risposta .Mi preocupa perchè mi domando : Quando ho 
piu chiamate  in contemporanea essendo oggetti Singhelton non rischio di 
restituire o eseguire operazioni su db Sbagliate ? una sorta di sovraposizione 
degli accessi a db.Per stateless intendi definire le mie cleassi services con 
@Stateless o anche i repository?Grazie mille ciao. 

    Il Venerdì 16 Febbraio 2018 13:27, "Massimo Ugues [email protected] 
[it-torino-java-jug]" <[email protected]> ha scritto:
 

     Ciao.Direi che l'approccio e' da manuale, in spring per default tutti i 
bean hanno scopo singleton: la premessa importante da capire è che essendo 
singleton devono essere stateless.Perchè hai dei dubbi sul Repository? Direi 
che visto che possono essere visti come dei DAO anche loro dovrebbero essere 
stateless.
Lo stereotipo @Repository mi pare che aggiunga degli aspetti per fare il 
translate delle sottostanti sql exceptions e ti permetta di iniettare un 
PersistenceContext o un EntityManager se dovessi averne bisogno (ripeto mi pare 
e su questo sto andando a braccio).
Secondo me quindi tutto corretto ;)
P.S. I servizi Rest li stai annotando con @Controller? lo stereotipo dedicato è 
@RestController.

2018-02-16 11:12 GMT+01:00 Danilo Boi [email protected] 
[it-torino-java-jug] <[email protected]>:

     Ciao A tutti .Grazie per aver accettato la richiesta.Mi sto occupando di 
programmazionejava specificatamente , al momento , su Spring MVC.Sto 
sviluppando dei servizi Rest...In particolare la Parte ORMla sto gestendo con 
spring-mybatis Lasciando fare a spring lafactory dei mapper  Mentre per il 
layer dicontrollo sto seguendo l’approccio di alcuni esempi che ho trovato in 
rete e cioè Un oggetto controllerannotato con @Controller Vari oggetti di 
servizio (Businesslogic) annotati come @Service Oggetti di manager deimapper 
MyBatis annotati come @Repository All’interno di questooggetto eseguo del 
@Controller eseguo  @Autowired degli oggetti @ServiceNegli oggetti 
@Serviceeseguo @Autowired degli oggetti @RepositoryChe a loro volta iniettano 
imapper MyBatis. Il dubbio che mi attanagliada qualche giorno è che 
SpringAll’avvio istanzia il @Controllercon un riferimento a n @ServiceQuesti a 
loro volta saranno“Singleton” che  a loro volta iniettanoGli oggetti   
@Repositoryche a loro volta iniettano i mapper MyBatis. Da quello che ho capito 
mitrovo in una situazione in cui tutti gli oggetti sono “Singleton” e questo 
puòandarmi bene per il @controller e forse anche per il @Service ma 
miintimorisce per il layer @Repository. Ho sbagliato l’approccio ? Scusate e 
grazie .Ciao.   



-- 
Massimo Ugues

  #yiv5301804050 #yiv5301804050 -- #yiv5301804050ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5301804050 
#yiv5301804050ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5301804050 
#yiv5301804050ygrp-mkp #yiv5301804050hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv5301804050 #yiv5301804050ygrp-mkp #yiv5301804050ads 
{margin-bottom:10px;}#yiv5301804050 #yiv5301804050ygrp-mkp .yiv5301804050ad 
{padding:0 0;}#yiv5301804050 #yiv5301804050ygrp-mkp .yiv5301804050ad p 
{margin:0;}#yiv5301804050 #yiv5301804050ygrp-mkp .yiv5301804050ad a 
{color:#0000ff;text-decoration:none;}#yiv5301804050 #yiv5301804050ygrp-sponsor 
#yiv5301804050ygrp-lc {font-family:Arial;}#yiv5301804050 
#yiv5301804050ygrp-sponsor #yiv5301804050ygrp-lc #yiv5301804050hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5301804050 
#yiv5301804050ygrp-sponsor #yiv5301804050ygrp-lc .yiv5301804050ad 
{margin-bottom:10px;padding:0 0;}#yiv5301804050 #yiv5301804050actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5301804050 
#yiv5301804050activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5301804050
 #yiv5301804050activity span {font-weight:700;}#yiv5301804050 
#yiv5301804050activity span:first-child 
{text-transform:uppercase;}#yiv5301804050 #yiv5301804050activity span a 
{color:#5085b6;text-decoration:none;}#yiv5301804050 #yiv5301804050activity span 
span {color:#ff7900;}#yiv5301804050 #yiv5301804050activity span 
.yiv5301804050underline {text-decoration:underline;}#yiv5301804050 
.yiv5301804050attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv5301804050 .yiv5301804050attach div a 
{text-decoration:none;}#yiv5301804050 .yiv5301804050attach img 
{border:none;padding-right:5px;}#yiv5301804050 .yiv5301804050attach label 
{display:block;margin-bottom:5px;}#yiv5301804050 .yiv5301804050attach label a 
{text-decoration:none;}#yiv5301804050 blockquote {margin:0 0 0 
4px;}#yiv5301804050 .yiv5301804050bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv5301804050 
.yiv5301804050bold a {text-decoration:none;}#yiv5301804050 dd.yiv5301804050last 
p a {font-family:Verdana;font-weight:700;}#yiv5301804050 dd.yiv5301804050last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5301804050 
dd.yiv5301804050last p span.yiv5301804050yshortcuts 
{margin-right:0;}#yiv5301804050 div.yiv5301804050attach-table div div a 
{text-decoration:none;}#yiv5301804050 div.yiv5301804050attach-table 
{width:400px;}#yiv5301804050 div.yiv5301804050file-title a, #yiv5301804050 
div.yiv5301804050file-title a:active, #yiv5301804050 
div.yiv5301804050file-title a:hover, #yiv5301804050 div.yiv5301804050file-title 
a:visited {text-decoration:none;}#yiv5301804050 div.yiv5301804050photo-title a, 
#yiv5301804050 div.yiv5301804050photo-title a:active, #yiv5301804050 
div.yiv5301804050photo-title a:hover, #yiv5301804050 
div.yiv5301804050photo-title a:visited {text-decoration:none;}#yiv5301804050 
div#yiv5301804050ygrp-mlmsg #yiv5301804050ygrp-msg p a 
span.yiv5301804050yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv5301804050 
.yiv5301804050green {color:#628c2a;}#yiv5301804050 .yiv5301804050MsoNormal 
{margin:0 0 0 0;}#yiv5301804050 o {font-size:0;}#yiv5301804050 
#yiv5301804050photos div {float:left;width:72px;}#yiv5301804050 
#yiv5301804050photos div div {border:1px solid 
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv5301804050 
#yiv5301804050photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv5301804050
 #yiv5301804050reco-category {font-size:77%;}#yiv5301804050 
#yiv5301804050reco-desc {font-size:77%;}#yiv5301804050 .yiv5301804050replbq 
{margin:4px;}#yiv5301804050 #yiv5301804050ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv5301804050 #yiv5301804050ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv5301804050 
#yiv5301804050ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv5301804050 
#yiv5301804050ygrp-mlmsg select, #yiv5301804050 input, #yiv5301804050 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv5301804050 
#yiv5301804050ygrp-mlmsg pre, #yiv5301804050 code {font:115% 
monospace;}#yiv5301804050 #yiv5301804050ygrp-mlmsg * 
{line-height:1.22em;}#yiv5301804050 #yiv5301804050ygrp-mlmsg #yiv5301804050logo 
{padding-bottom:10px;}#yiv5301804050 #yiv5301804050ygrp-msg p a 
{font-family:Verdana;}#yiv5301804050 #yiv5301804050ygrp-msg 
p#yiv5301804050attach-count span {color:#1E66AE;font-weight:700;}#yiv5301804050 
#yiv5301804050ygrp-reco #yiv5301804050reco-head 
{color:#ff7900;font-weight:700;}#yiv5301804050 #yiv5301804050ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv5301804050 #yiv5301804050ygrp-sponsor 
#yiv5301804050ov li a {font-size:130%;text-decoration:none;}#yiv5301804050 
#yiv5301804050ygrp-sponsor #yiv5301804050ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv5301804050 
#yiv5301804050ygrp-sponsor #yiv5301804050ov ul {margin:0;padding:0 0 0 
8px;}#yiv5301804050 #yiv5301804050ygrp-text 
{font-family:Georgia;}#yiv5301804050 #yiv5301804050ygrp-text p {margin:0 0 1em 
0;}#yiv5301804050 #yiv5301804050ygrp-text tt {font-size:120%;}#yiv5301804050 
#yiv5301804050ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv5301804050 

   

Reply via email to