Posts

JSF FacesContext and HttpServletRequest for Web Services in JSF Project

 The FacesContext is created by the FacesServlet and thus only available within any Java code which is processed by the FacesServlet, which covers all JSF artifacts, such as managed beans and phase listeners. The FacesContext is just an abstraction of everything already available by standard Servlet API such as HttpServletRequest, HttpSession, ServletContext, etc. For web services, we can use them directly . JAX RS Implementation @Context private ServletConfig servletConfig; @Context private ServletContext servletContext; @Context private HttpServletRequest httpServletRequest; @Context private HttpServletResponse httpServletResponse; @POST @Path("/xxxx") @Produces("application/json") public RestResult<XXXResult> eee(@RequestBody inputParam parameter) throws BusinessRuleException { httpServletRequest.getSession().setAttribute(&quo

Record

 Record konusunda açıklamaları içerecek. sadece attibute tanımlayabiliyoruz. dto yerine geçebiliyor. sorgu hızlandırmada işe yarıyor.

Java String Pool

 Java'da String'ler değiştirilemezdir (immutable). JVM String'ler için ayrılan yeri optimum şekilde yönetebilmek için her String sabit değerinin sadece bir kopyası olacak şekilde String havuzunda tutar. Buna interning denir. Eğer bir String değişkeni oluşturur ve ona değer atarsak JVM havuzda aynı değerde string olup olmadığını arar ve varsa ona referans verir. Aynı değerdeki stringler aynı yere referans verirler. Eğer havuzda(pool) o string'i bulmazsa havuza yeni stringi ekler(interning) ve onun adresini döner. String baskent= "Ankara"; String ikametEdilenIl = "Ankara";       assertThat(baskent).isSameAs(ikametEdilenIl ); new keyword'ü ile oluşturulan String nesneleri ise heap'te oluşturulur ve ayrı yerlerde saklanır. String baskent = "Ankara"; String ikametEdilenIl = new String("Ankara");   assertThat(baskent ).isNotSameAs(ikametEdilenIl );