1 / 24

Spring MVC - uzupełnienie

Spring MVC - uzupełnienie. Plan wykładu. TilesView Automatyczne uruchamianie metod Wysyłanie e-mail Java Message Service. TilesView - konfiguracja (I). <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="order" value="0"/>

Download Presentation

Spring MVC - uzupełnienie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spring MVC - uzupełnienie

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

  3. TilesView - konfiguracja (I) <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="order" value="0"/> <property name="viewClass" value="commons.TilesView" /> </bean> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/proces-tiles.xml</value> </list> </property> </bean> 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"/> <put-attribute name="content” type="template"value=""/> </definition> 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 ); } 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 ); } }} Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  7. TilesView - strona jsp <html> <head> wszystkie css, scripty, inne </head> <body> <tiles:insertAttribute name="header"/> <tiles:insertAttribute name="menu"/> <tiles:insertAttribute name="logon"/> <div class="content"><tiles:insertAttribute name="content"/></div> <tiles:insertAttribute name="footer"/> </body> </html> 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"> <property name="targetObject" ref=”uzytkownikService" /> <property name="targetMethod" value=”metodaPorzadkujaca" /> </bean> 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="jobDetail" ref=" nocnePorzadki " /> <!-- run every morning at 2 AM --> <property name="cronExpression" value="0 0 2 * * ?" /> </bean> 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"> <property name="jobDetail" ref=" nocnePorzadki" /> <property name="startDelay" value="10000" /> <property name="repeatInterval" value="50000" /> </bean> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  11. Automatyczne wykonywanie metod (IV) <bean class="org.springframework.scheduling.quartz. SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="pierwszyTrigger" /> <ref bean="drugiTrigger" /> </list> </property> </bean> 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 ..... 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) { ... } } 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"); 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); Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  16. Wysyłanie email (V) Map<String, Object> model = new HashMap<String, Object>(); 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); 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"> <property name="velocityProperties"> <value> resource.loader=class class.resource.loader.class=org.apache.velocity. runtime.resource.loader.ClasspathResourceLoader </value> </property> </bean> 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"> <property name="host" value=”???" /> <property name="port" value=”???" /> <property name="username" value=”???" /> <property name="password" value=”???" /> <property name="protocol" value="smtp" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> 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} 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; 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); } 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 { ... 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; .... 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 .... } Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

More Related