일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- tiles.xml
- 도커
- JSP
- PL/SQL
- 배포
- 웹소켓
- RDS
- Ajax
- CSS
- phaser
- 알고리즘
- Servlet
- EC2
- 암호화
- websocket
- SQL
- Cookie
- 비트코인
- express
- autowired
- 블록체인
- HTML
- node.js
- model1
- JavaScript
- AWS
- jQuery
- Spring
- 웹게임
- docker
- Today
- Total
목록Spring (26)
記錄
데이터베이스 트리거(Database Trigger)는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용된다. 트리거를 사용하여 데이터 작업 제한, 작업 기록, 변경 작업 감사 등을 할 수 있다. 트리거에는 크게 나누어 행 트리거와 문장 트리거의 두 종류가 있다. 행 트리거: 테이블 안의 영향을 받은 행 각각에 대해 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다.문장 트리거:INSERT, UPDATE, DELETE 문에 대해 한번만 실행된다.또한 트리거는 다음과 같은 속성을 갖는다. BEFORE 또는 AFTER트리거가 실행되는 시기를 지정한다.INSTEAD O..
-- procedure-- 내가 위에서 만든 커서를 영속적으로 저장 (객체)-- 객체 형태로 저장 해놓으면 그 다음번에 코딩하지 않고 불러 사용 -- Oracle : subprogram(= procedure)-- Ms-sql : procedure -- 자주 사용되는 쿼리를 모듈화 시켜서 객체로 저장하고-- 필요한 시점에 불러(호출) 해서 사용하겠다-- procedure는 자동 커밋, 롤백이 되지 않으므로 사용자가 제어해줘야 한다 --기존 : APP(emp.java > select .... 구문) ->네트워크 > DB연결 > selet... > DB에--지금 : APP(emp.java > usp_emplist 구문) ->네트워크 > DB연결 > usp_emplist > DB에 -- 장점 1) 네트워크 트래..
chat-ws.jsp(html도 무관)채팅 // 웹소켓으로 쓸 변수 선언 var wsocket; // 입장 버튼 클릭시 작동 함수 function connect() { // 웹소켓 생성 // 생성자에 관해서는 이전 포스팅 참고 // 여기서는 이 페이지로 대화 내용을 보내는 것이므로 소켓 경로가 이 페이지(여기)이다 wsocket = new WebSocket( "ws://localhost:8090/spring4-chap09-ws/chat-ws"); // 이렇듯 소켓을 생성하는 단계에서 // .onopen, onmessage, onclose에 해당하는 함수를 정의 wsocket.onopen = onOpen; wsocket.onmessage = onMessage; wsocket.onclose = onClose..
1. dependency 설정 org.springframework spring-websocket 4.0.4.RELEASE 2. Controller 오버라이드public class EchoHandler extends TextWebSocketHandler { // afterConnectionEstablished : 웹소켓이 연결되면 호출되는 함수 // 웹소켓이 연결 되는 것 = 프론트에서 웹소켓이 정확한 경로를 잡아 생성 되는 것 @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { System.out.printf("%s 연결 됨\n", session.getId()); } // 웹소켓 클라이언트..
1. pom.xml 에서 jackson dependency 선언(비동기로 json타입의 데이터를 가져올 것이기 때문에) com.fasterxml.jackson.core jackson-core 2.7.3 org.codehaus.jackson jackson-core-asl 1.9.13 com.fasterxml.jackson.core jackson-databind 2.7.3 2. DispatcherServlet 에 다음과 같이 선언(네임스페이스에 유의, xmlns:mvc 설정과 이를 이용한 맨 밑 두 줄) 3. 컨트롤러에서 아래와 같이 처리 (@ResponseBody, @RequestBody 설정)@RequestMapping(value="response2.kosta",method=RequestMethod.PO..
1. pom.xml 에서 jackson dependency 선언(비동기로 json타입의 데이터를 가져올 것이기 때문에) com.fasterxml.jackson.core jackson-core 2.7.3 org.codehaus.jackson jackson-core-asl 1.9.13 com.fasterxml.jackson.core jackson-databind 2.7.3 2. 나중에 Controller에서 @Autowired로 bean을 찾아 쓸 수 있도록 DispatcherServlet에org.springframework.web.servlet.view.json.MappingJackson2JsonView을 bean 설정 3. 컨트롤러에서 아래와 같이 처리(핵심: jsonview를 @Autowired 해주고..
pom.xml org.springframework.security spring-security-web 4.0.1.RELEASE org.springframework.security spring-security-config 4.0.1.RELEASE org.springframework.security spring-security-taglibs 4.0.1.RELEASE web.xml org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/applicationContext.xml /WEB-INF/security-context.xml springSecurityFilterChain org.springframework.we..
Tiles.xmlDOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> layout.jsp 직원 정보 관리 시스템 로그아웃 × 로그아웃 하시겠습니까? Cancel Logout
MasterController.java (Master는 내가 그냥 붙인거고 클래스명은 무관)// @Controller를 통해 DispatcherServlet이// 이를 controller로 인식하고 모든 처리를 여기로 요청한다@Controllerpublic class MasterController { // type으로 찾아 bean으로 생성 // root-context.xml에 이미 bean으로 설정은 마친 상태 @Autowired private SqlSession sqlsession; // 요청 주소를 mapping // 일단 .htm은 모두 이곳으로 요청되도록 설정된 상태이고 // 정확한 요청 주소를 보고 @RequestMapping 설정에 따라 // 알맞은 메소드로 요청이 들어간다 @RequestM..
addEmp.jsp 직원추가 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 돌아가기 EmpDto.java public class EmpDto { private int EMPNO; private String ENAME; private String JOB; private int MGR; private String HIREDATE; private int SAL; private int COMM; private int DEPTNO; // .... 아래는 getter, setter 자동 생성 // getter, setter 없으면 Mybatis 작동하지 않는다 // .. // .. // .. EmpDao.java(interface) public interface EmpDao { /..
pom.xml 4.0.0 kr.or bit PracticeSpring war 1.0.0-BUILD-SNAPSHOT 1.6 3.1.1.RELEASE 1.6.10 1.6.6 oracle ORACLE JDBC Repository http://maven.jahia.org/maven2 org.springframework spring-context ${org.springframework-version} commons-logging commons-logging org.springframework spring-webmvc ${org.springframework-version} org.aspectj aspectjrt ${org.aspectj-version} org.slf4j slf4j-api ${org.slf4j-ver..
org.springframework.web.contextInterface WebApplicationContext public interface WebApplicationContextextends ApplicationContext Interface to provide configuration for a web application. This is read-only while the application is running, but may be reloaded if the implementation supports this.This interface adds a getServletContext() method to the generic ApplicationContext interface, and define..
web.xml SpringMVC_Basic01_Controller index.html spring org.springframework.web.servlet.DispatcherServlet spring *.htm Class DispatcherServletpublic class DispatcherServletextends FrameworkServlet Central dispatcher for HTTP request handlers/controllers, e.g. for web UI controllers or HTTP-based remote service exporters. Dispatches to registered handlers for processing a web request, providing co..
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 다 같은 그림인데 밑으로 내려올 수록 더 심화되고 자세한 흐름이다.기본적인 Spring MVC는 이 그림이 나타내는 flow가 전부라고 할 수 있다. ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ cf. Controller의 각 메소드에서 최종적으로 String값을 리턴하면서 클라이언트가 가도록 할 페이지를 넘길때 "redirect:"가 붙이는 이유? 내가 착각했던 부분은 Controller의 각 메소드가 return을 할 때 매핑된 .do 와 같은 처리 요청을 하면 다시 메소드로 갈 것이라고 생각했는데 잘못된 생각이었다. Controller에서 return을 하게 될 경우 view를 찾아 보내는 것을 피할 수 ..
bean에서 객체를 가져올 때 기본적으로 싱글톤 방식으로 객체를 가져온다. 즉, 아무리 여러번 객체를 가져와도 가져올 때마다 새로 생성하는 것이 아니라 하나의 동일한 객체를 가져오게 된다는 것이다. bean에서 객체를 가져올 때 기존처럼 싱글톤 방식으로 하나의 동일한 객체를 계속 가져오는 것이 아니라 getBean()으로 객체를 가져올 때마다(주입 받을 때마다) 객체를 새로 생성해서 새로운 객체를 가져오게 된다. 즉, getBean()을 통해 객체를 가져올 때(주입이 필요할 때)마다 새로운 객체가 필요하다면 scope="prototype"을 사용한다. 예제코드 public class Client implements InitializingBean , DisposableBean { public Client(..
예제코드 1 (기본) public class Client implements InitializingBean , DisposableBean { public Client() { System.out.println("Client Default"); } private String defaulthost; public Client(String defaulthost){ this.defaulthost = defaulthost; System.out.println("Client Overloading :" + this.defaulthost); } private String host; public String getHost() { return host; } public void setHost(String host) { this..
xml대신 Configcontext 을 "Spring 설정 파일"로 사용하는 방식이며 코드는 아래와 같다 /* Configcontext 을 [Spring 설정 파일]로 사용하겠다 (xml 파일 대체 하겠다) :객체 생성과 주입을 처리 하겠다 @Configuration (설정파일) @Bean (객체 생성) (함수 기반의 처리) xml 파일 이라면 Java 파일에서는 함수를 생성해서 객체 주소 리턴하는 형태 */ @Configuration //xml 생성public class Configcontext { @Bean public User user() { // return new User(); } @Bean public User2 user2() { // return new User2(); }} public cl..
public class Recorder { } public class MonitorViewer { private Recorder recorder; public Recorder getRecorder() { return recorder; } @Resource(name="yy") //id 값 또는 name 을 명시해서 특정 객체 주입 public void setRecorder(Recorder recorder) { this.recorder = recorder; System.out.println("setter 주입 성공"); }} public class Program { public static void main(String[] args) { /* JAVA 코드 방식 MonitorViewer viewer = ne..
public class Recorder { } public class MonitorViewer { private Recorder recorder; public Recorder getRecorder() { return recorder; } @Autowired @Qualifier("corder1") // public void setRecorder(Recorder recorder) { this.recorder = recorder; System.out.println("setter 주입 성공"); } @Autowired @Qualifier("corder2") // public void RecorderMethod(Recorder rec) { System.out.println("rec : " + rec); } } p..
.xml .javapublic class MonitorViewer { private Recorder recorder; public Recorder getRecorder() { return recorder; } // @Autowired가 선언됨으로써 // 해당 메소드에서 의존하고 있는 객체(구동을 위해 필요한 객체)를 // type으로 찾아서 이와 일치하는 객체를 bean 에서 찾아서 이곳에 injection하게 된다 @Autowired public void setRecorder(Recorder recorder) { this.recorder = recorder; }} public class Recorder { } public class Program { public static void main(Strin..
public class DataSourceFactory { private String jdbcDriver; private String jdbcUrl; private String username; private String password; public void setJdbcDriver(String jdbcDriver) { this.jdbcDriver = jdbcDriver; } public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public void setUsername(String username) { this.username = username; } public void setPassword(String password) { this..
192.168.0.26 20000 package DI_10_Spring; import java.util.Properties; public class BookClient { private Properties config; public void setConfig(Properties config) { this.config = config; } //일반함수 (출력) public void connect() { String server = config.getProperty("server"); String timeout = config.getProperty("connectiontimeout"); System.out.println("server : " + server); System.out.println("timeou..
public class Program { public static void main(String[] args) { /* ProtocolHandler handler = new ProtocolHandler(); ArrayList arraylist = new ArrayList(); arraylist.add(new EncFilter()); arraylist.add(new HeaderFilter()); arraylist.add(new ZipFilter()); handler.setFilters(arraylist); */ ApplicationContext context = new GenericXmlApplicationContext("classpath:DI_07_Spring/DI_07.xml"); ProtocolHan..
public interface ProtocolHandler {} public class RestHandler implements ProtocolHandler {} public class RssHandler implements ProtocolHandler {} public class ProtocolHandlerFactory { //Map(key , value) private Map handlers; public void setHandlers(Map handlers) { this.handlers = handlers; System.out.println("setter 주입 성공 : " + this.handlers); }} public class Program { public static void main(Str..
public class JobExecute { public JobExecute(String first , int second) { System.out.println("String,int"); } public JobExecute(String first , long second) { System.out.println("String,long"); } public JobExecute(String first , String second) { System.out.println("String,String"); } private ArticleDao articledao; public ArticleDao getArticledao() { return articledao; } public void setArticledao(A..
ApplicationContext context = new GenericXmlApplicationContext("classpath:DI_05_Spring/DI_05.xml"); System.out.println("before : mybean객체");MyBean mybean = context.getBean("mybean",MyBean.class);System.out.println("after : mybean객체 : " + mybean); System.out.println("before : mybean2객체");MyBean mybean2 = context.getBean("mybean",MyBean.class);System.out.println("after : mybean2객체 : " + mybean2); /..