이제 Manager클래스를 만들어봅시다.
실제로 BlazeDS를 이용해서 가져오는 놈은 이 Manager클래스가 되겠죠^^

Java Resources: src에서 오른쪽버튼 클릭하고, New를 해서 interface를 구현합니다.
[code]
package springapp.service;

import java.util.List;
import springapp.domain.Product;

public interface ProductManager {
 public List<Product> getProducts();
}
[/code]
getProducts라는 메소드가 하나 있군요! 구현해봅시다!!!
[code]
package springapp.service;

import java.util.List;

import springapp.dao.ProductDao;
import springapp.domain.Product;

public class ProductManagerImpl implements ProductManager {

 private ProductDao productDao;
 
 @Override
 public List<Product> getProducts() {
  return productDao.getProductList();
 }

 public void setProductDao(ProductDao productDao) {
  this.productDao = productDao;
 }
}
[/code]
getProducts라는 함수는 Dao에서 getProductList를 호출하는 놈이네요.
요 아래에는 setter가 있네요. 이건 spring에서 DI를 하기위해 존재하는 setter입니다^^
서비스도 완성이 되었네요! 이제 설정파일을 작성해봅시다.

applicationContext.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 <!-- Enable @Transactional support -->
 <tx:annotation-driven />

 <!-- Enable @AspectJ support -->
 <aop:aspectj-autoproxy />

 <aop:config>
  <aop:advisor pointcut="execution(* *..ProductManager.*(..))"
   advice-ref="txAdvice" />
 </aop:config>

 <tx:advice id="txAdvice">
  <tx:attributes>
   <tx:method name="save*" />
   <tx:method name="get*" read-only="true" />
  </tx:attributes>
 </tx:advice>

 <bean id="productManager"
  class="springapp.service.ProductManagerImpl">
  <property name="productDao" ref="productDao" />
 </bean>

</beans>
[/code]
Dao부분의 설정파일인 applicationContext-ibatis.xml파일을 봅시다.
applicationContext-ibatis.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 <bean id="propertyConfigurer"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  p:location="classpath:properties/jdbc.properties" />

 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource"
  p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
  p:username="${jdbc.username}" p:password="${jdbc.password}" />

 <!-- Transaction manager for iBATIS Daos -->
 <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource" />
 </bean>

 <!-- SqlMap setup for iBATIS Database Layer -->
 <bean id="sqlMapClient"
  class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configLocation"
   value="classpath:springapp/dao/SqlMapConfig.xml" />
 </bean>

 <!-- Add additional Dao definitions here -->
 <bean id="productDao"
  class="springapp.dao.ProductDaoImpl">
  <property name="sqlMapClient" ref="sqlMapClient" />
 </bean>
 
</beans>
[/code]
jdbc.properties파일은 properties라는 package를 만들고, jdbc.properties파일을 넣어버립시다.
[code]
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://DB주소
jdbc.username=DB아이디
jdbc.password=DB비밀번호
[/code]
이 설정들의 bean들의 관계를 보고 싶다면-_-;
Spring Elements에서 오른쪽버튼 클릭하고 properties를 선택.
Bean Support를 선택, Add한 뒤 두개의 설정파일(applicationContext.xml, applicationContext-ibatis.xml)선택.
Config set에서 New하고 Name에 applicationContext라고 하고, 두개다 체크 오케이~
그럼 이제 스프링 설정파일에서 에러를 찾아낼 수 있어요!
bean들의 관계를 그래프로도 볼 수 있네요!
Config set에 추가한 applicationContext에다가 마우스오른쪽버튼을 클릭하면 open graph로 볼 수 있어요!

이제 클라이언트 구현으로....다음 시간에-_-;

 
Posted by 머드초보
,
 
우선 기본적으로 솔라리스10에는 MySQL이 설치가 되어있더군요-_-;
몰랐습니다. 걍 지우고 다시 깔아봅시다. 원래 삽질을 좋아해서-_-;

pkgrm으로 mysql 지워버립시다-_-;(이래도 되나-_-;)

다시 깔아봅시다.
http://dev.mysql.com/downloads/ 이곳에서 MySQL 솔라리스 pkg용으로 받습니다.
Solaris (pkgadd packages) 이눔인 것 같습니다.

우선 mysql계정을 만들어야 돼요.
[root][/] groupadd mysql
[root][/] useradd -g mysql mysql
[root][/] passwd mysql
새 암호:
새 암호를 다시 입력하십시오:
passwd: 암호(mysql용)가 성공적으로 변경되었습니다.

mysql이라는 그룹을 추가하고 mysql이라는 사용자를 추가하고 그룹은 mysql로 하고 비밀번호를 바꿔줍시다.
아.....그리고 mysql이라는 계정에 디렉토리가 아마 /home/mysql로 되어있는데요.
home아래에 이상하게 디렉토리가 안만들어지드라구요. 그래서 /user/mysql/ 이라는 디렉토리를 만들고
소유자를 mysql로 바꿨습니다.

[root][/]mkdir /user/mysql/
[root][/]chown mysql /user/mysql/
[root][/]cd /user/mysql/
[root][/user/mysql]ls -al
총 4
drwxr-xr-x   2 mysql    root         512  1월 18일  18:37 ./
drwxr-xr-x   4 root     root         512  1월 18일  18:37 ../
[root][/user/mysql]vi /etc/passwd/

mysql:x:101:100::/user/mysql:/bin/csh  #홈디렉토리변경 및 쉘도 변경

받은다음에 서버에 올려서 gunzip으로 풀고, pkgadd로 패키지를 설치합시다. 당근 root계정으로 ^^
[root][/user/mudchobo]gunzip mysql-5.0.45-solaris10-i386.pkg.gz
[root][/user/mudchobo]pkgadd -d mysql-5.0.45-solaris10-i386.pkg

이제 막 설치가 되는데요. 다되었으면 "<mysql>(이)가 성공적으로 설치되었습니다." 라고 떠요.
기본으로 /usr/local/mysql/ 에 설치가 되어있습니다.

설정파일을 만들어야하는데요.  /etc/my.cnf 에다가 만듭니다.
[root][/user/mudchobo]vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /user/mysql/data
datadir은 mysql 홈디렉토리아래에 data디렉토리로 설정해두시면 됩니다.
저의 홈디렉토리는 /user/mysql/ 이어서 저렇게 설정한 겁니다.

mysql이 어느경로에서도 실행될 수 있게 PATH를 잡아줍시다.
기존 PATH에 /usr/local/mysql/bin 이눔도 추가해줍시다.

csh에서는 setenv PATH {$PATH}:/usr/local/mysql/bin 이런식으로 합니다.

그다음 가장먼저 실행해야할 mysql_install_db를 실행해야합니다.
[root][/] cd /usr/local/mysql/scripts
[root][/opt/mysql/mysql/scripts]ls
mysql_install_db*           mysql_install_db.in         mysql_install_db.old.1208*  mysql_install_db.old.1731*
[root][/opt/mysql/mysql/scripts] ./mysql_install_db --user=mysql --ldata=/user/mysql/data

라고 해주면 됩니다. 자 이제 mysql을 띄워 봅시다. mysql은 mysql계정으로 들어가서 띄워야합니다.
[mysql][/user/mysql] mysqld &
[1] 1516
[mysql][/user/mysql] 080118 19:07:17  InnoDB: Started; log sequence number 0 43655
080118 19:07:17 [Note] mysqld: ready for connections.
Version: '5.0.45'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[mysql][/user/mysql]

mysql에 접속해봅시다. root비밀번호가 처음에는 설정되어 있지 않습니다. password없이 접속됩니다.
[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


mysql 비밀번호 변경하는 방법은 2가지가 있네요(더 있을 수도 있을지도^^)

1. mysqladmin을 이용해서 하는방법
[mysql][/user/mysql] mysqladmin -u root password '비밀번호'


2. mysql에 mysql -u root 로 접속해서 변경하는 방법(이건 차후에 변경할 때도 쓰이겠죠^^)

[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('비밀번호');
Query OK, 0 rows affected (0.01 sec)



이제 사용자를 추가해봅시다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myid'@'%' IDENTIFIED BY 'mypasswd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
mysql>

저기 %로하셔야 어디서든 접속이 가능한 계정으로 만들어집니다. localhost로하면 local에서 밖에 접속을 못합니다.

mysql을 종료시켜봅시다.
[mysql][/user/mysql] mysqladmin -uroot -p1234 shutdown
080118 19:27:18 [Note] mysqld: Normal shutdown
080118 19:27:18  InnoDB: Starting shutdown...
080118 19:27:20  InnoDB: Shutdown completed; log sequence number 0 43655
080118 19:27:20 [Note] mysqld: Shutdown complete
[mysql][/user/mysql]

아....잘되네요

두리야 다 정리했다 어셔 시도해보거라-_-;
 
Posted by 머드초보
,
 

저도 웹2.0에 뒤쳐지지 않기 위해서 flex를 공부하려고 합니다-_-; 우선 개발환경을 만들어봅시다.

준비물입니다.

JDK 6u2
http://java.sun.com/javase/downloads/index.jsp

Tomcat6.0
http://tomcat.apache.org/download-60.cgi

Flex Builder 2 (요고이 유료입니다! 돈내고 사셔야합니다-_-; 평가판 주소입니다.)
아래 사이트를 들어가셔서 adobe홈페이지에 가입하고 다운로드 하셔야합니다.
https://www.adobe.com/cfusion/tdrc/index.cfm?product=flex&loc=ko

LiveCycle DataService ES Express(원래 이름이 Flex DataService 2인가 그랬을 껍니다-_-;)
이건 Express버전으로 하면 무료입니다. 아래사이트도 로그인 후 다운로드 가능합니다.
http://www.adobe.com/cfusion/entitlement/index.cfm?e=lcds26_td

준비물이 다 되었으면 설치를 해 봅시다.
JDK는 뭐 다음신공으로 설치를 해줍시다.

Tomcat은 6.0으로 설치 버전이든, zip버전이든 어떻게든 설치를 해서 서버만 돌아가도록 합시다-_-;
zip버전에서는 JAVA_HOME이라는 환경변수가 있어야합니다. 자바가 설치된 디렉토리를 지정해주면 됩니다.

Flex Builder 2설치할 때  두개 중 한개를 선택하라는 부분이 있는데요.

사용자 삽입 이미지

위와 같이 나오는데
첫번째는 Flex Builder를 그냥 설치하겠다는 것인데 즉 자체적인 이클립스를 사용한다는 겁니다.
두번째는 기존에 사용하던 이클립스를 플러그인 형식으로 설치를 해서 기존의 이클립스를 사용한다는 겁니다.
첫번째로 하도록 합시다. 그냥 따로 씁시다-_-;

그다음 뭐 그냥 다음 신공으로 설치를 합시다.

LiveCycle Data Services는 설치할 때 Installation Options에서
사용자 삽입 이미지

두가지 선택문이 나오는데
첫번재는 JRun이라는 서버를 사용하겠다는 것이고,
두번째는 J2EE용 web application을 사용하겠다는 것인데, 톰캣을 써야하기 때문에 두번째꺼를 선택합시다.
(JRUN은 안해봤습니다-_-;)

다 설치를 한 다음에 설치된 폴더(디폴트로 c:\lcds)에 flex.war, sample.war, flex-admin.war 파일이 3개가 있는데 이것을 톰캣폴더에 있는 webapp폴더에 복사해줍시다.

톰캣은 WAR파일을 폴더에만 복사해두면 작동하면 자동으로 Deploy합니다 ^^

자 그러면 톰캣을 가동해봅시다.
가동이 완료되면 주소창에 http://localhost:8080/flex/ 이라고 적어봅시다.
사용자 삽입 이미지


위 그림처럼 뜨면 설치가 성공한겁니다 ^^
샘플도 실행해봅시다. http://localhost:8080/samples/dashboard/dashboard.mxml 를 실행해봅시다.
사용자 삽입 이미지

위와 같이 멋진 샘플화면이 뜰 껍니다 ^^

설치를 했다는 데에 의의를 둡시다-_-; 다음시간에는 헬로우월드(HelloWorld!)를 찍어봅시다-_-;

ps. 근데 저 샘플화면을 실행했을 때 플레쉬플레이어를 설치하라고 나와서 다시 설치를 했는데도 또 설치하라고 나오면 언인스톨하고 다시 설치하면 됩니다 ^^
 
Posted by 머드초보
,