Projektowanie warstwy serwera Spring MVC - uzupełnienie
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 Java Message Service
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 TilesView - konfiguracja (I) /WEB-INF/proces-tiles.xml
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"/>
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 ); }
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 ); } }}
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 TilesView - strona jsp wszystkie css, scripty, inne
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">
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 * * ?" />
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">
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">
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Wysyłanie (I) public class MailServiceImpl implements MailService, ApplicationContextAware { private JavaMailSender mailSender; private ApplicationContext applicationContext; private VelocityEngine velocityEngine; //metody servisowe np.: UzytkownikService.....
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 Wysyłanie (II) public void noweKonto(final String login) { //przygotowanie obiektu preparator try { mailSender.send(preparator); } catch(MailException me) {... } }
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Wysyłanie (III) MimeMessagePreparator preparator = new MimeMessagePreparator() public void prepare(MimeMessage mimeMessage) { Uzytkownikuzytkownik = uzytkownikService.getByLogin(login); MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Wysyłanie (IV) message.setTo(uzytkownik.get ()); message.setFrom(adresOdKogo); message.setText(tekst maila, false); message.setSubject(tytuł maila); } String from = applicationContext.getMessage(" .from", null, new Locale("pl"))); message.setFrom(from);
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Wysyłanie (V) Map model = new HashMap (); model.put("uzytkownik", uzytkownik); model.put("link", String text = VelocityEngineUtils.mergeTemplateIntoString( velocityEngine, szablony/noweKonto.html, "UTF-8", model); message.setText(text, false);
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Wysyłanie - 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
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Wysyłanie - konfiguracja (II) <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> true
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Szablon 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}
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 Java Message Service - public class BibliotekaMessageSenderImpl implements private JmsTemplate jmsTemplate;
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Java Message Service - sender public void sendNoweKontoMessage(String login) { NoweKontoMessage nkm = new NoweKontoMessage(); nkm.setLogin(login); jmsTemplate.convertAndSend(nkm); }
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 Java Message Service - public class BibliotekaMessageListener implements MessageListener {...
Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 Java Message Service - listener public void onMessage(Message message) { if (message instanceof ObjectMessage) { ObjectMessage ob = (ObjectMessage) message;....
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.... }