Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie warstwy serwera Spring MVC - uzupełnienie.

Podobne prezentacje


Prezentacja na temat: "Projektowanie warstwy serwera Spring MVC - uzupełnienie."— Zapis prezentacji:

1 Projektowanie warstwy serwera Spring MVC - uzupełnienie

2 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Plan wykładu TilesView Automatyczne uruchamianie metod Wysyłanie e-mail Java Message Service

3 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 TilesView - konfiguracja (I) /WEB-INF/proces-tiles.xml

4 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 TilesView - konfiguracja (II) <definition name="default-layout" template="/WEB-INF/jsp/common/default-layout.jsp"> <put-attribute name="header" type="template" value="/WEB-INF/jsp/common/header.jsp"/> <put-attribute name="footer" type="template" value="/WEB-INF/jsp/common/footer.jsp"/> <put-attribute name="menu" type="template" value="/WEB-INF/jsp/common/menu.jsp"/> <put-attribute name="logon" type="template" value="/WEB-INF/jsp/common/logon.jsp"/>

5 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 TilesView (I) public class TilesView extends AbstractUrlBasedView { protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { TilesContainer container = TilesAccess.getContainer(getServletContext()); String url = getUrl(); if ( container.isValidDefinition( url, request, response ) ) { container.render( url, request, response ); }

6 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 TilesView (II) else { AttributeContext ctx = container.getAttributeContext( request, response ); Attribute content = new Attribute(); content.setName( "content" ); content.setType( Attribute.AttributeType.TEMPLATE ); content.setValue( "/WEB-INF/jsp/" + url + ".jsp" ); ctx.putAttribute( "content", content ); container.render( "default-layout", request, response ); } }}

7 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 TilesView - strona jsp wszystkie css, scripty, inne

8 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 Automatyczne wykonywanie metod (I) <bean name=nocnePorzadki" class="org.springframework.scheduling.quartz. MethodInvokingJobDetailFactoryBean">

9 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 Automatyczne wykonywanie metod (II) <bean id=pierwszyTrigger" class="org.springframework.scheduling.quartz. CronTriggerBean"> <property name="cronExpression" value="0 0 2 * * ?" />

10 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Automatyczne wykonywanie metod (III) <bean id=drugiTrigger" class="org.springframework.scheduling. quartz.SimpleTriggerBean">

11 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 Automatyczne wykonywanie metod (IV) <bean class="org.springframework.scheduling.quartz. SchedulerFactoryBean">

12 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Wysyłanie email (I) public class MailServiceImpl implements MailService, ApplicationContextAware { private JavaMailSender mailSender; private ApplicationContext applicationContext; private VelocityEngine velocityEngine; //metody servisowe np.: UzytkownikService.....

13 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 Wysyłanie email (II) public void noweKonto(final String login) { //przygotowanie obiektu preparator try { mailSender.send(preparator); } catch(MailException me) {... } }

14 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Wysyłanie email (III) MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) { Uzytkownikuzytkownik = uzytkownikService.getByLogin(login); MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");

15 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Wysyłanie email (IV) message.setTo(uzytkownik.getEmail()); message.setFrom(adresOdKogo); message.setText(tekst maila, false); message.setSubject(tytuł maila); } String from = applicationContext.getMessage("email.from", null, new Locale("pl"))); message.setFrom(from);

16 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Wysyłanie email (V) Map model = new HashMap (); model.put("uzytkownik", uzytkownik); model.put("link",http://www.biblioteka.pl/aktywacja.html?id=); String text = VelocityEngineUtils.mergeTemplateIntoString( velocityEngine, szablony/noweKonto.html, "UTF-8", model); message.setText(text, false);

17 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Wysyłanie email - konfiguracja (I) <bean id="velocityEngine" class="org.springframework.ui.velocity. VelocityEngineFactoryBean"> resource.loader=class class.resource.loader.class=org.apache.velocity. runtime.resource.loader.ClasspathResourceLoader

18 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Wysyłanie email - konfiguracja (II) <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> true

19 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Szablon email Witaj ${uzytkownik.imie} ${uzytkownik.nazwisko}, Twoje konto zostało założone. Automatycznie wygenerowano hasło: ${uzytkownik.pierwszeHaslo} Kliknij poniższy link: ${link}${uzytkownik.hash}

20 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 Java Message Service - sender (I) @Transactional @Service("messageSender") public class BibliotekaMessageSenderImpl implements BibliotekaMessageSender { @Autowired @Qualifier("jmsTemplate") private JmsTemplate jmsTemplate;

21 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Java Message Service - sender (II) @Override public void sendNoweKontoMessage(String login) { NoweKontoMessage nkm = new NoweKontoMessage(); nkm.setLogin(login); jmsTemplate.convertAndSend(nkm); }

22 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 Java Message Service - listener (I) @Service(bibliotekaMessageListener") @Transactional public class BibliotekaMessageListener implements MessageListener {...

23 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 Java Message Service - listener (II) @Override public void onMessage(Message message) { if (message instanceof ObjectMessage) { ObjectMessage ob = (ObjectMessage) message;....

24 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 Java Message Service - listener (III) if (ob.getObject() instanceof NoweKontoMessage) { NoweKontoMessage nkm = (NoweKontoMessage) ob.getObject(); bibliotekaMailService.noweKonto(nkm.getLogin()); } else if.... }


Pobierz ppt "Projektowanie warstwy serwera Spring MVC - uzupełnienie."

Podobne prezentacje


Reklamy Google