applicationContext.xml:
File parameters.properties / Fichero parameters.properties:
MyComponent.path=/some/path
Spring component / Componente gestionado por Spring:
import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;
@Component("MyComponent")
public class MyComponent {
private String path;
@PostConstruct
public void loadPath() {
System.out.println("Loading from " + this.path);
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
HowTo, Java, Spring
HowTo, Java, Spring
Simply a code I wrote today at my Spring Training / Simplemente un código que escribí hoy en el curso de Spring.
applicationContext.xml:
1
2
3
4
5
6
7
8
9
10
| <?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="postProcessor" class="com.sourcerebels.test.postprocessor.PostProcessor"/>
<bean id="someBusinessRule" class="com.sourcerebels.test.postprocessor.SomeBusinessRule" lazy-init="true">
<property name="message" value="someBusinessRule executed"/>
</bean>
</beans> |
Advice:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| package com.sourcerebels.test.postprocessor;
import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;
import org.springframework.aop.MethodBeforeAdvice;
public class TransactionAdvice implements MethodBeforeAdvice, AfterReturningAdvice {
public void before(Method method, Object[] args, Object target) throws Throwable {
System.out.println("Starting Transaction");
}
public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
System.out.println("Commit Transaction");
}
} |
BusinessRule interface:
1
2
3
4
5
6
| package com.sourcerebels.test.postprocessor;
public interface BusinessRule {
void run();
} |
SomeBusinessRule class:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package com.sourcerebels.test.postprocessor;
public class SomeBusinessRule implements BusinessRule {
private String message;
public void run() {
System.out.println(message);
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
} |
Postprocessor:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| package com.sourcerebels.test.postprocessor;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
/**
* @author edu@sourcerebels.com
*/
public class PostProcessor implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessBeforeInitialization");
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessAfterInitialization");
if (bean instanceof BusinessRule) {
System.out.println("building proxy object");
ProxyFactory proxyFactory = new ProxyFactory(bean);
proxyFactory.addInterface(BusinessRule.class);
proxyFactory.addAdvice(new TransactionAdvice());
return proxyFactory.getProxy();
}
return bean;
}
} |
Main:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| package com.sourcerebels.test.postprocessor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
String[] paths = { "com/sourcerebels/test/postprocessor/applicationContext.xml" };
ApplicationContext ctx = new ClassPathXmlApplicationContext(paths);
BusinessRule negocio = (BusinessRule) ctx.getBean("someBusinessRule");
negocio.run();
negocio = (BusinessRule) ctx.getBean("someOtherBusinessRule");
negocio.run();
}
} |
Design Patterns, HowTo, Java, Spring
Design Patterns, Java, Spring
HTML code / Código HTML:
<form method="POST" enctype="multipart/form-data" action="./myControllerURL">
<input type="file" name="file"/>
<input type="submit" name="submit" value="File Upload - Subir fichero"/>
</form>
Spring configuration / Configuración Spring:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000"/>
</bean>
Controller code / código del controlador:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("file");
InputStream inputStream = null;
OutputStream outputStream = null;
File tmpFile = null;
System.out.println("file.getOriginalFileName(): "
+ file.getOriginalFilename());
System.out.println("size:" + file.getSize());
try {
if (file.getSize() > 0) {
tmpFile = File.createTempFile("document_", ".tmp");
inputStream = file.getInputStream();
outputStream = new FileOutputStream(tmpFile);
int readBytes = 0;
byte[] buffer = new byte[8192];
while ((readBytes = inputStream.read(buffer, 0, 8192)) != -1) {
outputStream.write(buffer, 0, readBytes);
}
outputStream.close();
inputStream.close();
System.out.println("Saved file: " + tmpFile.getAbsolutePath());
}
} catch (IOException ioe) {
// TODO - Manage the exception.
}
HowTo, Java, Spring, Spring MVC
HowTo, Java, Spring, Spring MVC