26 Aralık 2017 Salı

SpringMVC @EnableWebMvc Anotasyonu

Giriş
Açıklaması şöyleç
Using @EnableWebMvc disables MVC autoconfiguration.

21 Aralık 2017 Perşembe

TransactionSynchronizationManager Sınıfı

Giriş
Şu satırı dahil ederiz
import org.springframework.transaction.support.TransactionSynchronizationManager;
Açıklaması şöyle.
Central helper that manages resources and transaction synchronizations per thread. To be used by resource management code but not by typical application code.
isCurrentTransactionReadOnly metodu
Şöyle yaparız
@Transactional
void foo(){
  log.info("Is readonly -  " + TransactionSynchronizationManager
  .isCurrentTransactionReadOnly());
  ..
}
getCurrentTransactionName metodu
Şöyle yaparız
@Transactional
void foo(){
  log.info("Current Transaction Name -  " + TransactionSynchronizationManager
  .getCurrentTransactionName());
  ..
}
registerSynchronization metodu
registerSynchronization metodu yazısına taşıdım

setCurrentTransactionName metodu
Şöyle yaparız
@Transactional
void foo(){
  TransactionSynchronizationManager.setCurrentTransactionName("TestTransaction");
  ...
}

20 Aralık 2017 Çarşamba

SpringSecurity HttpSessionSecurityContextRepository Sınıfı

loadContext metodu
SecurityContext nesnesi döner. Şöyle yaparız.
@Override
public SecurityContext loadContext(HttpRequestResponseHolder requestResponseHolder) {
  SecurityContext context = super.loadContext(requestResponseHolder);

  Authentication auth = context.getAuthentication();
  if (auth instanceof OAuth2Authentication) {
    ...
  }
  return context;
}

19 Aralık 2017 Salı

SpringBeanAutowiringSupport Sınıfı

Giriş
Soyut bir sınıftır. Spring dışında yaratılan nesnelerin Spring @Autowire anotasyonu ile işaretli alanlarının dolmasını sağlar. Bu sınıftan kalıtan WebApplicationObjectSupport sınıfıdır.

processInjectionBasedOnCurrentContext metodu
Şöyle yaparız.
@PostConstruct
public void init(){
   SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}

13 Aralık 2017 Çarşamba

SpringContext LinkedMultiValueMap Sınıfı - Multimap

Giriş
Şu satırı dahil ederiz.
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
constructor
Şöyle yaparız.
MultiValueMap<String, Object> MulMap = new LinkedMultiValueMap<>();
Şöyle yaparız.
MultiValueMap<String, Integer> multiValueMap=new LinkedMultiValueMap<>();
add metodu
Elimizde şöyle bir kod olsun.
MultiValueMap<String, String> headers; new LinkedMultiValueMap<>();
Şöyle yaparız.
String key = ...;String value = ...;
headers.add(key, value);

12 Aralık 2017 Salı

SpringData Jdbc Jdbc BeanPropertyRowMapper Sınıfı

Giriş
Açıklaması şöyle. Yani RowMapper arayüzünü kullanmak daha iyi
To have tight integration between Java and ResultSet of JDBC, Spring JDBC has a RowMapper interface. A developer can either create a custom class or use BeanPropertyRowMapper, which reduces the boilerplate; however, the entity should have a public getter and setter; it might get an encapsulation issue besides it provides convenience rather than high performance. For best performance, consider using a custom RowMapper implementation.
Örnek
Elimizde bir model sınıfı olsun.
public class FooModel {

  private Long id;
  private String name;

  public InvModel() {
    super();
  }

}
Şöyle yaparız.
RowMapper<InvModel> MAPPER = BeanPropertyRowMapper.newInstance(FooModel.class);

5 Aralık 2017 Salı

SpringSecurity OAuth2 TokenEndpoint Sınıfı

Giriş
Açıklaması şöyle
Clients must be authenticated using a Spring Security Authentication to access this endpoint, and the client id is extracted from the authentication token. The best way to arrange this (as per the OAuth2 spec) is to use HTTP basic authentication for this endpoint with standard Spring Security support.

28 Kasım 2017 Salı

HttpSessionRequestCache Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
constructor
Şöyle yaparız.
HttpSessionRequestCache httpSessionRequestCache = new HttpSessionRequestCache();
setCreateSessionAllowed metodu
Şöyle yaparız.
httpSessionRequestCache.setCreateSessionAllowed(false);
Diğer
Kullanmak için şöyle yaparız.
public class ApiSecurityConfig extends WebSecurityConfigurerAdapter {
  public HttpSessionRequestCache getHttpSessionRequestCache() {
    HttpSessionRequestCache httpSessionRequestCache = new HttpSessionRequestCache();
    httpSessionRequestCache.setCreateSessionAllowed(false);
    return httpSessionRequestCache;
  }

  @Override
  protected void configure(final HttpSecurity http) throws Exception {
    http.requestCache().requestCache(getHttpSessionRequestCache());
}