'기초/spring framework'에 해당되는 글 9건

  1. 2015.07.10 spring security
  2. 2015.07.08 mybatis
  3. 2015.07.08 spring utf-8 설정
  4. 2015.07.06 Spring JDBC
  5. 2015.07.02 한글처리
  6. 2015.06.25 profile 사용하기
  7. 2015.06.25 외부로 부터 파일을 가져오기
  8. 2015.06.24 InitializingBean, DisposableBean
  9. 2015.06.24 XML과 JAVA 를 같이 사용
기초/spring framework2015. 7. 10. 10:03


1. http://www.mvnrepository.com 에서 security 검색해서 아래항목을 4.01버전을 받아준다 그리고 pom.xml에 추가해준다


        <!-- security core -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>4.0.1.RELEASE</version>
        </dependency>

        <!-- security web -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>4.0.1.RELEASE</version>
        </dependency>
       
        <!-- security config -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>4.0.1.RELEASE</version>
        </dependency>
       
        <!-- securty taglibs -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>4.0.1.RELEASE</version>
        </dependency>


한번씩 properties와 충돌이 나면 버전을 수정해준다


<properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>



오류 예제


<properties>
        <java-version>1.6</java-version>
        <org.springframework-version>4.1.6.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>






2. /SpringMVCSecurity/src/main/webapp/WEB-INF/spring/appServlet 에서 Spring Bean Configuration File로

securty-context.xml을 생성해준다






3. web.xml에 context-param애 securty-context.xml을 등록해준다




/WEB-INF/spring/appServlet/security-context.xml




4. web.xml에 security 필터추가


    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
   





5. security-context.xml에 설정 추가


    <security:http auto-config="true">
        <security:intercept-url pattern="/login" access="ROLE_USER"/>
        <security:intercept-url pattern="/welcome" access="ROLE_ADMIN"/>
    </security:http>
   
    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="member01" password="1234" authorities="ROLE_USER"/>
                <security:user name="admin" password="1234" authorities="ROLE_ADMIN,ROLE_USER"/>
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>




6. controller


@RequestMapping("/login")
    public String login(){
        return "login";
    }
   
    @RequestMapping("/welcome")
    public String welcome(){
        return "welcome";
    }


'기초 > spring framework' 카테고리의 다른 글

mybatis  (0) 2015.07.08
spring utf-8 설정  (0) 2015.07.08
Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
Posted by ICT 기술 블로그
기초/spring framework2015. 7. 8. 15:30

1. http://www.mvnrepository.com 에서 mybatis라고 검색하여 결과값을 가져옴


mybatis와 mybatis-spring의 dependency를 가져와야 된다. 그리고 jdbc dependecy도 가저온다




2. 가져온 xml을 pom.xml에 dependencies 항목에 넣는다



           
        <!--  Spring JDBC -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.7.RELEASE</version>
        </dependency>
       
        <!--  mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
       
        <!--  mybatis spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>




3. servlet-context.xml에서 빈설정



<beans:bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <beans:property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
        <beans:property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
        <beans:property name="username" value="test"/>
        <beans:property name="password" value="1234"/>
    </beans:bean>
   
   
   
    <beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource"/>
        <beans:property name="mapperLocations" value="classpath:com/spring/mybatis/dao/mapper/*.xml"/>
    </beans:bean>
   
    <beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <beans:constructor-arg index="0" ref="sqlSessionFactory"/>
    </beans:bean>
   



4. package com.spring.mybatis.dao 에 IDAO 인터페이스를 만들어준다

public interface IDao {
    public ArrayList<BDto> listDao();
    public void writeDao(String bWrite, String bTitle, String bContent);
    public BDto content_view(int bId);
    public void deleteDao(String bId);

}


5. com.spring.mybatis.dao.mapper 안에 IDAO인퍼페이스를 바탕으로 xml 파일을 생성해준다

4번항목의 인터페이스를  참고하여 아래와 같이 xml 파일을 만들어준다


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.spring.mybatis.dao.IDao">
    <select id="listDao" resultType="com.spring.mybatis.dto.BDto">
        select * from my_board order by bId DESC
    </select>
   
   <insert id="writeDao">
        insert into my_board(bId, bWrite, bTitle, bContent)
            values(my_board_seq.nextval, ${param1}, ${param2}, ${param3})
    </insert>
   
    <delete id="deleteDao">
        delete from my_board where bId=#{param1}
    </delete>

</mapper>


※ 파라메타를 받을 시 $는 타입을 아는 경우, # 타입을 모르는 경우



6. package com.spring.mybatis.controller 에서 BController를 작성해준다


@Controller
public class BController {
    @Autowired
    private SqlSession sqlSession;
   
   
   
    @RequestMapping("/list")
    public String list(Model model){
        IDao dao = sqlSession.getMapper(IDao.class);
        model.addAttribute("list", dao.listDao());
        return "board/list";
    }
   
    @RequestMapping(method=RequestMethod.POST, value="/write")
    public String write(HttpServletRequest request, Model model){
        String bWrite = request.getParameter("bWirte");
        String bTitle = request.getParameter("bTitle");
        String bContent = request.getParameter("bContent");
       
        IDao dao = sqlSession.getMapper(IDao.class);
        dao.writeDao(bWrite, bTitle, bContent);
        return "redirect:/list";
    }
   
    @RequestMapping("delete")
    public String delete(HttpServletRequest request, Model model){
        String bId = request.getParameter("bId");
        IDao dao = sqlSession.getMapper(IDao.class);
        dao.deleteDao(bId);
        return "redirect:/list";
    }
}




※ http://blog.mybatis.org/ 접속

product  항목에서 mybaits3의 docs 클릭

Configuration xml에 가면 사용법이나온다











'기초 > spring framework' 카테고리의 다른 글

spring security  (0) 2015.07.10
spring utf-8 설정  (0) 2015.07.08
Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
Posted by ICT 기술 블로그
기초/spring framework2015. 7. 8. 09:39

자신의 프로젝트 안의 web.xml안에 아래내용을 넣어준다



<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>

    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
   




'기초 > spring framework' 카테고리의 다른 글

spring security  (0) 2015.07.10
mybatis  (0) 2015.07.08
Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
Posted by ICT 기술 블로그
기초/spring framework2015. 7. 6. 15:07

1. pom.xml에 dependncy  추가

       <dependency>
           <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.7.RELEASE</version>
        </dependency>



http://www.mvnrepository.com/  에서 검색


2. Server에 context.xml에 db정보를 넣어준다


 <Resource name="jdbc/board_db" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
              username="test" password="1234" maxTotal="20" maxIdle="10"
              maxWaitMillis="-1"/>



http://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#Oracle_8i,_9i_&_10g




3. servlet-context 에 templet bean 작성



<beans:bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <beans:property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
        <beans:property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
        <beans:property name="username" value="test"/>
        <beans:property name="password" value="1234"/>
    </beans:bean>
   
    <beans:bean name="template" class="org.springframework.jdbc.core.JdbcTemplate">
        <beans:property name="dataSource" ref="dataSource"/>
    </beans:bean>




4. controller에 templete 선언(com.spring.board.controller)



    public JdbcTemplate template;


   @Autowired
    public void setTemplate(JdbcTemplate template) {
        this.template = template;
        Contance.templete = this.template;
    }



5. templete을 받아줄 Contance 클라스 선언 (com.spring.board.util)


public class Contance {


    public static JdbcTemplate templete;

}


6. 템플릿 객체 선언 (DB정보 가져오기)



 6.1 기존

    DataSource dataSource;
    public BDao(){
        try {
            Context context = new InitialContext();
            dataSource = (DataSource)context.lookup("java:/comp/env/jdbc/board_db");

        } catch (Exception e) {
            // TODO: handle exception
        }
       
    }


  6.2 변경
    JdbcTemplate template;
    public BDao(){
        template = Contance.templete;
    }


7. 예제

  7.1 기존

public ArrayList<BDto> list(){
       
  
        ArrayList<BDto> list = new ArrayList<BDto>();
       
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql = "select * from mvc_board order by bGroup DESC, bStep ASC";
       
        try {
            conn= dataSource.getConnection();
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            while(rs.next()){
                BDto dto = new BDto();
                dto.setbId(rs.getInt("bId"));
                dto.setbName(rs.getString("bName"));
                dto.setbTitle(rs.getString("bTitle"));
                dto.setbContent(rs.getString("bContent"));
                dto.setbDate(rs.getTimestamp("bDate"));
                dto.setbHit(rs.getInt("bHit"));
                dto.setbStep(rs.getInt("bStep"));
                dto.setbGroup(rs.getInt("bGroup"));
                dto.setbIndent(rs.getInt("bIndent"));
                list.add(dto);
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        finally{
            close(conn, pstmt, rs);
        }
       
        return list;
    }


   7.2 변경


    public ArrayList<BDto> list(){
       
        ArrayList<BDto> list = new ArrayList<BDto>();
        String sql = "select * from mvc_board order by bGroup DESC, bStep ASC";
        list =(ArrayList<BDto>) template.query(sql, new BeanPropertyRowMapper<BDto>(BDto.class));
       
        return list;

}




'기초 > spring framework' 카테고리의 다른 글

mybatis  (0) 2015.07.08
spring utf-8 설정  (0) 2015.07.08
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
외부로 부터 파일을 가져오기  (0) 2015.06.25
Posted by ICT 기술 블로그
기초/spring framework2015. 7. 2. 09:42

해당프로젝트의 web.xml 에 아래의 내용을 붙여넣어 준다



  <filter>

  <filter-name>characterEncodingFilter</filter-name>

  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

  <init-param>

  <param-name>encoding</param-name>

  <param-value>UTF-8</param-value>

  </init-param>

  <init-param>

  <param-name>forceEncoding</param-name>

  <param-value>true</param-value>

  </init-param>

  </filter>

  <filter-mapping>

  <filter-name>characterEncodingFilter</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>







get방식으로 넘어올경우


Servers에서


server.xml의


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 내용을


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" endoing="UTF-8" /> 로 수정해준다

'기초 > spring framework' 카테고리의 다른 글

spring utf-8 설정  (0) 2015.07.08
Spring JDBC  (0) 2015.07.06
profile 사용하기  (0) 2015.06.25
외부로 부터 파일을 가져오기  (0) 2015.06.25
InitializingBean, DisposableBean  (0) 2015.06.24
Posted by ICT 기술 블로그
기초/spring framework2015. 6. 25. 15:13

xml방식


appbean_dev.xml


<?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.xsd"
    profile="dev"
    >
   
    <bean id="serverInfo" class="com.spring.profile.ServerInfo">
        <property name="ipNum" value="localhost"></property>
        <property name="portNum" value="8181"></property>
    </bean>
   
</beans>




appbean_run.xml


<?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.xsd"
    profile="run">

    <bean id="serverInfo" class="com.spring.profile.ServerInfo">
        <property name="ipNum" value="192.168.0.253"></property>
        <property name="portNum" value="8181"></property>
    </bean>
   
</beans>





ServerInfo.java

package com.spring.profile;

public class ServerInfo {
    String ipNum;
    String portNum;
    public String getIpNum() {
        return ipNum;
    }
    public void setIpNum(String ipNum) {
        this.ipNum = ipNum;
    }
    public String getPortNum() {
        return portNum;
    }
    public void setPortNum(String portNum) {
        this.portNum = portNum;
    }
   
   
   
}





MainClass.java


package com.spring.profile;

import java.util.Scanner;

import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String config=null;
        Scanner scanner = new Scanner(System.in);
       
        String str = scanner.next();
        if(str.equals("dev")){
            config="dev";
        }
        else if(str.equals("run")){
            config="run";
        }
       
        scanner.close();
       
        GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
        ctx.getEnvironment().setActiveProfiles(config);
        ctx.load("profile/appbean_dev.xml", "profile/appbean_run.xml");
        ctx.refresh();

       
        ServerInfo serverInfo = ctx.getBean("serverInfo", ServerInfo.class);
        System.out.println(serverInfo.getIpNum());
        System.out.println(serverInfo.getPortNum());

        ctx.close
    }
   

}




결과






java 방식



ServerInfo.java는 동일



ApplicationConfigRun.class


@Configuration
@Profile("run")
public class ApplicationConfigRun {
    @Bean
    public ServerInfo serverInfo(){
        ServerInfo info = new ServerInfo();
        info.setIpNum("192.168.0.253");
        info.setPortNum("8181");
        return info;
    }
}




ApplicationConfigDev.class


@Configuration
@Profile("dev")
public class ApplicationConfigDev {
    @Bean
    public ServerInfo serverInfo(){
        ServerInfo info = new ServerInfo();
        info.setIpNum("localhost");
        info.setPortNum("8181");
        return info;
    }

}



MainClass.java



package com.spring.profile;

import java.util.Scanner;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String config=null;
        Scanner scanner = new Scanner(System.in);
       
        String str = scanner.next();
        if(str.equals("dev")){
            config="dev";
        }
        else if(str.equals("run")){
            config="run";
        }
       
        scanner.close();
       
//        GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
//        ctx.load("profile/appbean_dev.xml", "profile/appbean_run.xml");
       
       
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
        ctx.getEnvironment().setActiveProfiles(config);
       
        ctx.register(ApplicationConfigRun.class, ApplicationConfigDev.class);
        ctx.refresh();
       
       
        ServerInfo serverInfo = ctx.getBean("serverInfo", ServerInfo.class);
        System.out.println(serverInfo.getIpNum());
        System.out.println(serverInfo.getPortNum());
       
        ctx.close();
       
    }
   

}


'기초 > spring framework' 카테고리의 다른 글

Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
외부로 부터 파일을 가져오기  (0) 2015.06.25
InitializingBean, DisposableBean  (0) 2015.06.24
XML과 JAVA 를 같이 사용  (0) 2015.06.24
Posted by ICT 기술 블로그
기초/spring framework2015. 6. 25. 12:50

xml방식


네임스페이스에서 context를 체크한다


그리고 아래 항목을 넣어준다


<context:property-placeholder location="classpath:config_admin.properties, classpath:config_sub_properties.properties"/>
    <bean id="adminConnection" class="com.spring.properiesconfig.AdminConnection">
        <property name="adminId">
            <value>${admin.id]</value>
        </property>
        <property name="adminPw">
            <value>${admin.id]</value>
        </property>
        <property name="sub_adminId">
            <value>${sub_admin.id]</value>
        </property>
        <property name="sub_adminPw">
            <value>${sub_admin.pw]</value>
        </property>
    
    
    </bean>



location 부분을 포함해서 쓰겠다는 뜻


그리고 properies파일의 value로 가져온다는 뜻



AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:config_appbean.xml");
        AdminConnection adminConnection = ctx.getBean("adminConnection", AdminConnection.class);
       
        System.out.println(adminConnection.getAdminId());
        System.out.println(adminConnection.getAdminPw());
        System.out.println(adminConnection.getSub_adminId());
        System.out.println(adminConnection.getSub_adminPw());
       
        ctx.close();
       



java 방식



@Configuration
public class ApplicationConfig {
    @Value("${admin.id}")   
    private String adminId;
    @Value("${admin.pw}")
    private String adminPw;
    @Value("${sub_admin.id}")
    private String sub_adminId;
    @Value("${sub_admin.pw}")
    private String sub_adminPw;
   
    @Bean
    public static PropertySourcesPlaceholderConfigurer properties(){
        PropertySourcesPlaceholderConfigurer configurer =
                new PropertySourcesPlaceholderConfigurer();
       
        Resource[] location = new Resource[2];
        location[0] = new ClassPathResource("config_admin.properties");
        location[1] = new ClassPathResource("config_sub_admin.properties");
        configurer.setLocations(location);
        return configurer;
    }
   
    @Bean
    public AdminConnection adminConfig(){
        AdminConnection adminConnection = new AdminConnection();
        adminConnection.setAdminId(adminId);
        adminConnection.setAdminPw(adminPw);
        adminConnection.setSub_adminId(sub_adminId);
        adminConnection.setSub_adminPw(sub_adminPw);
        return adminConnection;
    }







메인문


        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
        AdminConnection adminConnection = ctx.getBean("adminConfig", AdminConnection.class);
       
       







'기초 > spring framework' 카테고리의 다른 글

Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
InitializingBean, DisposableBean  (0) 2015.06.24
XML과 JAVA 를 같이 사용  (0) 2015.06.24
Posted by ICT 기술 블로그
기초/spring framework2015. 6. 24. 15:01

해당 클래스에 각 각을 implement 해준다


 implements InitializingBean, DisposableBean



그러면 매소드를 오버라이드 해주어야 한다



//InitializingBean

@Override
    public void afterPropertiesSet() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("Baean 이 생성");
    }


//DisposableBean

    @Override
    public void destroy() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("Bean이 소멸");
    }
   


'기초 > spring framework' 카테고리의 다른 글

Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
외부로 부터 파일을 가져오기  (0) 2015.06.25
XML과 JAVA 를 같이 사용  (0) 2015.06.24
Posted by ICT 기술 블로그
기초/spring framework2015. 6. 24. 12:26

xml에 java 추기


    <context:annotation-config />
        <bean class="com.spring.springxmljavadi.ApplicationConfig"/>



javacode


public class ApplicationConfig {
    public Student student1(){
        ArrayList<String> hobbies = new ArrayList<String>();
        hobbies.add("낚시");
        hobbies.add("축구");
        hobbies.add("등산");
        Student student = new Student("클라스", 20, hobbies);
        student.setHeight(180);
        student.setWeight(95);
       
        return student;
    }
}


이것은 메인에서 부를 때 xml로 불러야한다



java에 xml 추가


@ImportResource("classpath:appBean3.xml")




'기초 > spring framework' 카테고리의 다른 글

Spring JDBC  (0) 2015.07.06
한글처리  (0) 2015.07.02
profile 사용하기  (0) 2015.06.25
외부로 부터 파일을 가져오기  (0) 2015.06.25
InitializingBean, DisposableBean  (0) 2015.06.24
Posted by ICT 기술 블로그