尚学堂视频教程马士兵Spring文档
- 格式:doc
- 大小:67.50 KB
- 文档页数:8
Cat.Javapublic class Cat {private static int sid = 0;private String name;int id;Cat(String name) { = name;id = sid++;}public void info(){System.out.println("My name is "+name+" No."+id);}public static void main(String arg[]){Cat.sid = 100;Cat mimi = new Cat("mimi");mimi.sid = 2000;Cat pipi = new Cat("pipi");();();}}Dog.javapublic class Dog {static int furColor;float height;float weight;void catchMouse(Mouse m) {//as;dfj;asdf//asdfj;asf//m.scream();}public static void main(String[] args) {//int i;System.out.println(furColor);Dog d = new Dog();Mouse m = new Mouse();d.catchMouse(m);HelloWorld hw = new HelloWorld();}}class Mouse {int height;}Count3Quit.javapublic class Count3Quit {public static void main(String[] args) {int[] a = new int[500];for(int i=0; i<a.length; i++) {a[i] = 1;}int leftCount = 500;int countNum = 0;int index = 0;while(leftCount != 1) {if(a[index] == 1) {countNum ++;if(countNum == 3) {countNum = 0;a[index] = 0;leftCount --;}}index ++;if(index == a.length) {index = 0;}}for(int i=0; i<a.length; i++) {if(a[i] == 1) {System.out.println(i);}}}}- 1 -Fab.javapublic class Fab {public static void main(String[] args) {System.out.println(f(-9));}public static long f(int index) {if(index < 1) {System.out.println("invalid parameter!");return -1;}if(index == 1 || index == 2) {return 1;}long f1 = 1L;long f2 = 1L;long f = 0;for(int i=0; i<index-2; i++) {f = f1 + f2;f1 = f2;f2 = f;}return f;}}HelloWorld.javapublic class HelloWorld {static int j = 9;public static void main(String[] asdfasf) { //a;sldfkja;sdjf;asjdf;asjdfSystem.out.println("HW");System.out.println(123);System.out.println(j);int i = 8;}public static void m() {}}class TT {}ListFile.javaimport java.io.*;public class ListFile {public static void main(String[] args) {File f = new File("d:\\test");/*File[] files = f.listFiles();for(File ff : files) {System.out.println(ff.getName());}*/listChilds(f, 0);}public static void listChilds(File f, int level) {String preStr = "";for(int i=0; i<level; i++) { preStr += ""; }System.out.println(preStr + f.getName());if(!f.isDirectory()) return;File[] childs = f.listFiles();for(int i=0; i<childs.length; i++) {listChilds(childs[i], level + 1);}}}MySearch.javapublic class MySearch {public class main(String[] args) {int a[] = {2, 5, 99, 4, 6, 8, 7, 24, 12};int m = 6;for(int i=0; i<a.length; i++) {if(a[i] == m) {System.out.println(i);}}}}- 2 -OddSum.javapublic class OddSum {public static void main(String[] args) {long result = 0;for(int i=1; i<=99; i+=2) {result += i;}System.out.println("result=" + result);}}Point3D.javapublic class Point3D {double x, y, z;public Point3D(double _x, double _y, double _z) { x = _x;y = _y;z = _z;}public void setX(double _x) {x = _x;}public double distance() {return x*x + y*y + z*z;}public static void main(String[] args) {Point3D p = new Point3D(1.2, 3.4, 5.8);p.setX(1.3);System.out.println(p.distance());}}TestAccess.javaT.javapublic class T {int i;void m(int i) {this.i = i;}void m(short i) {System.out.println("short");}public static void main(String[] args) {this.i = 8;T t = new T();t.m(5);}}TestBreak.javapublic class TestBreak {public static void main(String args[]) {int stop = 4;for (int i = 1; i <= 10; i++) {//当i等于stop时,退出循环if (i == stop) {;}break;System.out.println(" i= " + i);}}}- 3 -TestCircle.javaclass Point {private double x;private double y;Point(double x1, double y1) {x = x1;y = y1;}public double getX() { return x; }public double getY() { return y; }public void setX(double i) { x = i; }public void setY(double i) { y = i; }}class Circle {private Point o;private double radius;Circle(Point p, double r) {o = p;radius = r;}Circle(double r) {o = new Point(0.0, 0.0);radius = r;}boolean contains(Point p) {double x = p.getX() - o.getX();double y = p.getY() - o.getY();if(x*x + y*y > radius * radius) return false;else return true;}public void setO(double x, double y) {o.setX(x);o.setY(y);}public Point getO() { return o; }public double getRadius() { return radius;}public void setRadius(double r) { radius = r;}public double area() {return 3.14 * radius * radius;}}public class TestCircle {public static void main(String args[]) {Circle c1 = new Circle(new Point(1.0,2.0), 2.0);Circle c2 = new Circle(5.0);System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+"),"+c1.getRadius());System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());System.out.println("c1 area = "+c1.area());System.out.println("c1 area = "+c2.area());c1.setO(5,6);c2.setRadius(9.0);System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+"),"+c1.getRadius());System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());System.out.println("c1 area = "+c1.area());System.out.println("c1 area = "+c2.area());Point p1 = new Point(5.2, 6.3);System.out.println(c1.contains(p1));System.out.println(c1.contains(newPoint(10.0,9.0)));}}- 4 -TestConstruct.javaclass Person2 {private String name;private String location;Person2(String name) { = name;location = "beijing";}Person2(String name,String location) { = name;this.location = location;}public String info() {return"name: "+name+" location: "+location;}}class Teacher extends Person2 {private String capital;Teacher(String name, String capital) {this(name, "beijing", capital);}Teacher(String name, String location, String capital) {super(name, location);this.capital = capital;}public String info() {return () + "capital: " + capital;}}public class TestConstruct {public static void main(String[] args) {Teacher t = new Teacher("B", "GG");System.out.println(());}}TestConvert2.javapublic class TestConvert2 {public static void main(String[] args) {int i=1,j=12;float f1=(float)0.1; //0.1ffloat f2=123;long l1 = 12345678,l2=8888888888L;double d1 = 2e20,d2=124;byte b1 = 1,b2 = 2,b3 = 127;j = j+10;i = i/10;i = (int)(i*0.1);char c1='a',c2=125;byte b = (byte)(b1-b2);char c = (char)(c1+c2-1);float f3 = f1+f2;float f4 = (float)(f1+f2*0.1);double d = d1*i+j;float f = (float)(d1*5+d2);}}TestConvert.javapublic class TestConvert {public static void main(String arg[]) {int i1 = 123;int i2 = 456;double d1 = (i1+i2)*1.2;//系统将转换为double型运算float f1 = (float)((i1+i2)*1.2);//需要加强制转换符byte b1 = 67;byte b2 = 89;byte b3 = (byte)(b1+b2);//系统将转换为int 型运算,需要强制转换符System.out.println(b3);double d2 = 1e200;float f2 = (float)d2;//会产生溢出System.out.println(f2);float f3 = 1.23f;//必须加flong l1 = 123;long l2 = 30000000000L;//必须加lfloat f = l1+l2+f3;//系统将转换为float型计算long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)}}TestDigitCount.javapublic class TestDigitCount {public static void main(String[] args) {int i = 34789;- 5 -double d = 3478.9765;digitCount2(String.valueOf(i));digitCount2(String.valueOf(d));}public static void digitCount(String s) {int index = s.indexOf(".");if(index == -1) {System.out.println(s.length());} else {System.out.println("整数:" + index + "\n" + "小数:" + (s.length() - index - 1));}}public static void digitCount2(String s) {String s1 = s.replace('.', ',');String[] ss = s1.split(",");if(ss.length == 1) {System.out.println(s1.length());} else if(ss.length == 2) {System.out.println("整数:" + ss[0].length() + "\n" + "小数:" + ss[1].length());} else {System.out.println("Format Error!");}}}TestEqual.javapublic class TestEqual {public static void main(String[] args) {Integer i1 = new Integer(1);Integer i2 = new Integer(1);System.out.println(i1 == i2);System.out.println(i1.equals(i2));Mao m1 = new Mao("A", "A");Mao m2 = new Mao("A", "A");System.out.println(m1 == m2);System.out.println(m1.equals(m2));}}class Mao {String name;String color;Mao(String n,String c){name = n; color = c;}public boolean equals(Object obj) {return true;}}TestFormat.javapublic class TestFormat {public static viod main(String[] args) {System.out.println("ok");System.out.println("hello");int i = 8 + 9;for(int i=0; i<10; i++) {System.out.println(i);System.out.println(i);}}public void m() {System.out.println("ok");}public void m2() {System.out.println("ok");}public void m3() {System.out.println("ok");}public void m4() {}}- 6 -TestIF.javapublic class TestIF {public static void main(String[] args) {int i = 20;if(i < 20) {System.out.println("<20");System.out.println("<20");} else if (i < 40) {System.out.println("<40");} else if (i < 60) {System.out.println("<60");} elseSystem.out.println(">=60");System.out.println(">=60");}}TestInherit.javaclass FatherClass {public int value;public void f(){value = 100;System.out.println("FatherClass.value="+value);}}class ChildClass extends FatherClass {public int value;public void f() {super.f();value = 200;System.out.println("ChildClass.value="+value);System.out.println(value);System.out.println(super.value);}}public class TestInherit {public static void main(String[] args) {ChildClass cc = new ChildClass();cc.f();}}TestInterface.java public class TestInterface {PetCarer pc = new Worker();pc.feed();}interface PetCarer {void feed();void playWithPet();}class Worker implements PetCarer {public void feed() {System.out.println("Worker feed ... ");}void playWithPet() {System.out.println("Worker play with pet ... ");}}TestMethod2.javapublic class TestMethod2 {public int Max(int a, int b) {return a > b ? a : b;}public int Min(int a, int b) {return a < b ? a : b;}public static void main(String[] args) {TestMethod2 t = new TestMethod2();System.out.println("Max = "+t.Max(3,4));System.out.println("Min = "+t.Min(3,4));//System.out.println(Max(3, 4));}}- 7 -TestMethod.javapublic class TestMethod {public static void main(String[] args) {m();m2(2);m3('3', 4);m4(4, 6);int i = m4(4, 6);System.out.println(i);}public static void m() {//return;System.out.println("ok");System.out.println("hello");}public static void m2(int i) {if(i > 3)return;System.out.println(i);}public static void m3(int i, int j) {System.out.println(i + j);}public static int m4(int i, int j) {return i > j ? i : j;}}TestMetrics.javapublic class TestMetrics {public static void main(String args[]) {int[][] m = {{1,2,3},{2,3,4},{4,5,6}};int[][] n = {{3,4,5},{5,6,7}};int[][] mn = new int[3][];for(int i = 0; i<m.length;i++) {mn[i] = new int[n[0].length];}for (int i = 0; i < m.length; i++) {for (int j = 0; j < n[0].length; j++) {for (int k = 0; k < n.length; k++) {mn[i][j] += m[i][k] * n[k][j];}}}for(int i = 0; i<mn.length;i++){for(int j =0;j<mn[i].length;j++){System.out.print(mn[i][j]);if(j<mn[i].length-1)System.out.print(",");}System.out.println();}}}TestOverLoad.javapublic class TestOverLoad {public static void main(String[] args) {Person p = new Person();Person p1 = new Person(400);Person p2 = new Person(2, 500);();("ok");}}class Person {Person() {id = 0;age = 20;}Person(int _id) {id = _id;age = 23;}Person(int _id, int _age) {id = _id;age = _age;}//成员变量定义private int id;private int age = 20;//方法定义public int getAge() {return age;}public void setAge(int i) {age = i;}public int getId() {return id;}void info() {System.out.println("my id is : " + id);}- 8 -void info(String t) {System.out.println(t + " id " + id);}}TestPack.java import com.bjsxt.java140.Cat;public class TestPack {public static void main(String[] args) { Cat c = new Cat();}}TestPerson.java class Person {private String name;private int age;public void setName(String name) {=name;}public void setAge(int age) {this.age=age;}public String getName(){return name;}public int getAge(){return age;}}class Student extends Person {private String school;public String getSchool() {return school;}public void setSchool(String school) { this.school =school;}}public class Test {public static void main(String arg[]){Student student = new Student();student.setName("John");student.setAge(18);student.setSchool("SCH");System.out.println(student.getName());System.out.println(student.getAge());System.out.println(student.getSchool());}}TestPrimitive.javapublic class TestPrimitive {public static void main(String[] args) {Integer i = new Integer(100);Double d = new Double("123.456");int j = i.intValue()+d.intValue();float f = i.floatValue()+d.floatValue();System.out.println(j); System.out.println(f);double pi = Double.parseDouble("3.1415926");double r = Double.valueOf("2.0").doubleValue();double s = pi*r*r;System.out.println(s);try {int k = Integer.parseInt("1.25");} catch (NumberFormatException e) {System.out.println("数据格式不对!");}System.out.println(Integer.toBinaryString(123)+"B");System.out.println(Integer.toHexString(123)+"H");System.out.println(Integer.toOctalString(123)+"O");}}- 9 -TestStatic.javapublic class TestStatic {static int i = 0;public static void main(String[] args) {i = 8;//T t = new T();//T.this.i = 9;}}class TT {int i = 8;void m() {TestStatic ts = new TestStatic();System.out.println(TestStatic.i);System.out.println(ts.i);}}TestStringCase.javapublic class TestStringCase {public static void main(String[] args) { String s = "ABAabb$&^$#BAAb898B#@%aa";int cU = 0, cL = 0, cO = 0;for(int i=0; i<s.length(); i++) {char c = s.charAt(i);if(c >= 'A' && c <= 'Z') {cU ++;} else if( c >= 'a' && c <='z') {cL ++;} else {cO ++;}}System.out.println("大写:" + cU);System.out.println("小写:" + cL);System.out.println("其他:" + cO);}}TestSubstr.javapublic class TestSubstr {public static void main(String[] args) {String s = "Welcome to Java World!";String s1 = s.substring(11, 14);System.out.println(s1);}}TestSuperSub.javaclass SuperClass {private int n;/*SuperClass() {System.out.println("SuperClass()");}*/SuperClass(int n) {System.out.println("SuperClass(" + n + ")");this.n = n;}}class SubClass extends SuperClass {private int n;SubClass(int n) {//super();System.out.println("SubClass(" + n + ")");this.n = n;}SubClass() {super(300);System.out.println("SubClass()");}}public class TestSuperSub {public static void main(String arg[]) {//SubClass sc1 = new SubClass();SubClass sc2 = new SubClass(400);}}TestSwitch.javapublic class TestSwitch {public static void main(String[] args) {int i = 8;- 10 -switch(i) {case 8 :case 3 :case 2 :System.out.println("C");break;case 9 :System.out.println("D");break;default:System.out.println("error");}}}TestToString.javapublic class TestToString {public static void main(String[] args) {}}classTestVar2.javapublic class TestVar2 {public static void main(String[] args) {boolean b = true;int x, y = 9;double d = 3.1415;char c1, c2;c1 = '\u534e';c2 = 'c';x = 12;System.out.println("b=" + b);System.out.println("x=" + x + ",y=" + y);System.out.println("d=" + d);System.out.println("c1=" + c1);System.out.println("c2=" + c2);}}TestUtilDate.javaimport java.util.Date;public class TestUtilDate {public static void main(String[] args){Date date = new Date();System.out.println(date);String temp = date.toString();String t = temp.substring(11,temp.indexOf('C'));t = t.trim();System.out.println(t);String[] time = t.split(":");if(time.length==3){String s1 = null;String s2 = null;String s3 = null;if(time[0].charAt(0) == '0') {s1 = time[0].substring(1);} else {s1 = time[0];}if(time[1].charAt(0) == '0') {s2 = time[1].substring(1);} else {s2 = time[1];}if(time[2].charAt(0) == '0') {s3 = time[2].substring(1);} else {s3 = time[2];}System.out.println("现在是"+ s1 +"点"+ Integer.parseInt(time[1]) +"分"+ s3 +"秒");}}}- 11 -TestVar.javapublic class TestVar {static int j;public void m() {int i = 0;System.out.println(i);}public static void main(String[] args) {int i = 0;System.out.println(i);System.out.println(j);boolean b = false;if(b) {int c = 0;System.out.println("b is true");}//System.out.println(c);long longNum1 = 8888888888888L;}}TestWhile.javapublic class TestWhile {public static void main(String[] args) {int i = 0;while(i < 10) {System.out.println(i);i++;}i = 0;do {i++;System.out.println(i);} while(i < 10);}}- 12 -。
3.hibernate.hbm2ddl.auto :在SessionFactory 创建时,自动检查数据库结构,或者将数据库schema 的DDL 导出到数据库。
使用create-drop 时,在显式关闭SessionFactory 时,将删除掉数据库schema。
例如:validate | update | create | create-dropcreate :如果没有表就创建update :如果表结构更新,就更新validate :每次插入表的时候看看表结构有没有更新。
理论上是先建类后建表:这个时候只要你的类建好了,可以跨数据库。
实际中先建表比先建类多,建好表以后要对数据库进行优化,比如建索引,建试图,各种各样的优化。
project\etc目录下面有很多示例性的文档,log4j的文档就在那个下面。
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); SessionFactory的建立是很耗费时间的,应该像连接池一样,只建立一次,以后要用就直接从那用。
Hibernate文档建议我们自己写一个辅助类,用单例来做。
JUnit的一个bug:@BeforeClasspublic static void beforeClass() {sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();}在这句话的时候配置文件如果有的时候写错了,她悄悄把错误隐藏起来了。
解决的方法:可以对这句话加try catch块8.表名和类名不一致的时候:@Entity@Table(name="_teacher")public class Teacher {10字段名和属性名不一致的时候@Column(name="_name")public String getName() {return name;}11 不需要的字段的设置@Transientpublic String getYourWifeName() {return yourWifeName;}12 映射指定的时间日期@Temporal(TemporalType.TIME)public Date getBirthDate() {return birthDate;}在注解里面如果一个注解的属性名字叫value,你可以不写,直接写后面的值,如@Temporal(value=“TemporalType.TIME”)可写成上面的那样。
JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。
尚学堂科技.马士兵.JAVA.系列视频教程第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_ 第05章_数组尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JAVA 视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频涉及到项目之1俄罗斯方块.rar: 07.4 MB涉及到项目之2坦克大战视频教程.rar: 019.4 MB涉及到项目之3坦克大战视频教程_java_eclipse.rar: 0395.4 MB涉及到项目之4坦克大战图片版.rar: 0101.2 MB涉及到项目之5坦克大战网络版视频教程.rar: 0248.8 MB涉及到项目之snake_贪吃蛇视频.rar: 095.2 MB涉及到项目之在线聊天系统雏形视频教程_java_eclipse.rar: 0233.9 MB◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_ 连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JAVASCRIPT 视频:Html & CSS 视频内容简介:01_html 简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_ 表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_ 选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS 初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_ 表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧。
Struts2 学习笔记---wjt276 [二○一○年一月五日完]目录01 Struts2-Action (5)一、Struts作用: (5)二、搭建Struts2的运行环境: (5)三、Namespace (6)四、<package>标签 (6)五、Action (6)六、路径问题的说明 (8)七、Action的动态调用方法 (8)八、Action通配符(wildcard)的配置 (9)九、Action的属性接收参数 (10)1、在Action添加成员属性接受参数 (10)2、域模型(Domain Model) (10)3、ModelDriven接收参数 (11)十、Action属性接收参数中文问题 (12)十一、简单数据验证 (12)十二、访问Web元素 (14)一、方法一:ActionContext方式 (15)二、方式二:Ioc(控制反转)—推荐使用 (15)三、方式三:获取原类型 (16)四、方式四:获取原类型-控制反转 (17)十三、Struts2配置文件模块化包含(include) (17)十四、默认的Action (18)十五、Action总结 (18)02 Struts2-Result (19)一、Result类型 (type) (19)二、全局结果集(Globle Result) (20)三、动态的结果集(dynamic result) (21)四、带参数的结果集 (21)五、Result总结 (22)六、项目经理: (22)03 OGNL表达式语言 (23)04 Struts2-Tags (28)Struts2标签目录 (28)一、property标签 (28)二、set标签 (29)三、bean标签 (29)四、<include>标签-少使用 (29)五、If elseif else (30)六、Iterator标签 (31)七、Theme (31)05设计约定(编码规定) (32)06 项目开发顺序 (32)07 声明式异常处理 (33)08 国际化 (35)一、国际化资源文件 (35)二、Java国际化 (35)Struts学习笔记第3页共39页三、Struts2国际化 (35)1、Action级别 (35)2、Package级别 (36)3、Application级别 (36)四、资源文件中的参数处理 (37)五、国际化-动态语言切换 (37)09 自定义拦截器 (38)10 类型转换 (38)Struts2总结 (39)目录Action⏹简单数据校验Result常用配置文件OGNL & ValueStackTags---------------------Project⏹类型转换、上传与下载、interceptor、防止重复提交 MVC思想深入剖析源码解读其他话题01 Struts2-Action一、Struts作用:将请求与结果分开二、搭建Struts2的运行环境:1、建立Web项目;2、建立Struts2的配置文件(struts.xml);将Struts2的空项目中的配置文件(struts.xml)复制到项目的src目录下。
中文名: 尚学堂科技.马士兵.JAVA视频教程(java培训内部视频)10年2月9日更新(更新Spring3.0)英文名: java video courses发行日期:地区: 大陆对白语言: 普通话简介:下载地址:/forum.php?mod=viewthread&tid=1832&extra=page%3D1====================================================== ============================================================ ===================2007年10月29日更新- 加入> - 视频代码的讲解请大家务必首先阅读《00_Shopping视频说明》,其中讲明了如何来阅读剩下的视频![声明:]这段视频是从尚学堂科技的教学课堂上实战录制,版权归尚学堂科技和马士兵老师共有,任何人不能用此教程牟利,违者必究。
====================================================== ======但是:在不收取其他人费用的前提下,您可以自由的分发此视频教程====================================================== ======[须知:]这些视频是以前公布的多个项目为基础的,在《00_Shopping视频说明》中有所说明,没有基础的同学应该首先阅之前的视频教程。
在此教程中,因为采用共享桌面,所以老师会经常说:“看我的桌面”,希望大家不要觉得惊奇或烦躁。
[其他文件:]在此目录下还有一个目录是[source],里面装有整个教学项目的源代码,建议大家在动手操作的过程中参考。
在此目录下还有一个[camplay.exe]文件,是观看视频所用的播放器,大家可以直接把视频文件(avi文件)直接拖放到上面进行观看。
尚学堂科技.马士兵.JAVA.系列视频教程第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_ 第05章_数组尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JAVA 视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频涉及到项目之1俄罗斯方块.rar: 07.4 MB涉及到项目之2坦克大战视频教程.rar: 019.4 MB涉及到项目之3坦克大战视频教程_java_eclipse.rar: 0395.4 MB涉及到项目之4坦克大战图片版.rar: 0101.2 MB涉及到项目之5坦克大战网络版视频教程.rar: 0248.8 MB涉及到项目之snake_贪吃蛇视频.rar: 095.2 MB涉及到项目之在线聊天系统雏形视频教程_java_eclipse.rar: 0233.9 MB◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_ 连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JAVASCRIPT 视频:Html & CSS 视频内容简介:01_html 简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_ 表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_ 选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS 初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_ 表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧。
(3)面向对象考虑问题的3步 (3)THIS关键字 (3)STATIC关键字(STATIC变量存放在内存中的DATA SEG中) (3)PACKAGE 关键字 (3)访问控制 (3)方法的重写 (3)S UPER关键字 (4)继承中的构造方法 (4)对象转型 (4)多态的3个必要条件 (4)动态绑定 (4)抽象类ABSTRACT (4)F INAL关键字 (4)接口 (5)5异常分类 (5)异常的捕获和处理 (5)THROW和THROWS的区别 (6)6二维数组 (6)7 S TRING B UFFER和S TRING的区别 (7)7I TERA TOR接口 (7)S ET接口 (7)L IST接口 (8)C OMPARABLE接口 (8)读的效率和写的效率 (8)M AP接口 (8)A UTO BOXING/UNBOXING(JDK1.5) (9) (9)处理流 (9)缓冲流 (9)转换流 (9)数据流 (9)Object流 (10)10线程的概念 (10)线程控制基本方法 (10)sleep方法 (10)join方法 (10)yield方法 (10)synchronized 关键字:可修饰方法,执行过程中锁定当前对象 (10)sleep()和wait()的区别 (10)notify()/notifyAll() (11)叫醒当前wait()的线程 (11) (11)TCP协议和UDP协议 (11)S OCKET (11)C OMPONENT (12)C ONTAINER (12)F RAME (12)布局管理器 (12)内部类 (13)G RAPHIC 类 (13)鼠标事件适配器 (13)W INDOW 事件 (13)匿名类 (13)swith 语句,每一条情况最后都需加break,否则会穿透。
多个case可以合并到一起Java中swith语句只能探测int类型(包括可以转换成int的类型)Return语句终止方法的运行并指定要返回的数据面向对象考虑问题的3步1.由哪些类,哪些对象构成2.这些类各自有哪些属性3.这些类之间有什么联系this关键字◆在类的方法定义中使用的this关键字代表使用该方法的对象的引用。
尚学堂马士兵Spring文档课程内容1.面向接口(抽象)编程的概念与好处2.IOC/DI的概念与好处a)inversion of controlb)dependency injection3.AOP的概念与好处4.Spring简介5.Spring应用IOC/DI(重要)a)xmlb)annotation6.Spring应用AOP(重要)a)xmlb)annotation7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a)opensessionInviewfilter(记住,解决什么问题,怎么解决)8.Spring JDBC面向接口编程(面向抽象编程)1.场景:用户添加2.Spring_0100_AbstractOrientedProgramminga)不是AOP:Aspect Oriented Programming3.好处:灵活什么是IOC(DI),有什么好处1.把自己new的东西改为由容器提供a)初始化具体值b)装配2.好处:灵活装配Spring简介1.项目名称:Spring_0200_IOC_Introduction2.环境搭建a)只用IOCi.spring.jar , jarkata-commons/commons-loggin.jar3.IOC容器a)实例化具体beanb)动态装配4.AOP支持a)安全检查b)管理transactionSpring IOC配置与应用1.FAQ:不给提示:a)window – preferences – myeclipse – xml – xml catalogb)User Specified Entries – addi.Location:D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\sprin g-beans-2.5.xsdii.URI:file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resource s/spring-beans-2.5.xsdiii.Key Type: Schema Locationiv.Key:/schema/beans/spring-beans-2.5.xsd2.注入类型a)Spring_0300_IOC_Injection_Typeb)setter(重要)c)构造方法(可以忘记)d)接口注入(可以忘记)3.id vs. namea)Spring_0400_IOC_Id_Nameb)name可以用特殊字符4.简单属性的注入a)Spring_0500_IOC_SimplePropertyb)<property name=… value=….>5.<bean 中的scope属性a)Spring_0600_IOC_Bean_Scopeb)singleton 单例c)proptotype 每次创建新的对象6.集合注入a)Spring_0700_IOC_Collectionsb)很少用,不重要!参考程序7.自动装配a)Spring_0800_IOC_AutoWireb)byNamec)byTyped)如果所有的bean都用同一种,可以使用beans的属性:default-autowire8.生命周期a)Spring_0900_IOC_Life_Cycleb)lazy-init (不重要)c)init-method destroy-methd 不要和prototype一起用(了解)9.Annotation第一步:a)修改xml文件,参考文档<context:annotation-config />10.@Autowireda)默认按类型by typeb)如果想用byName,使用@Qulifierc)写在private field(第三种注入形式)(不建议,破坏封装)d)如果写在set上,@qualifier需要写在参数上11.@Resource(重要)a)加入:j2ee/common-annotations.jarb)默认按名称,名称找不到,按类型c)可以指定特定名称d)推荐使用e)不足:如果没有源码,就无法运用annotation,只能使用xml12.@Component @Service @Controller @Repositorya)初始化的名字默认为类名首字母小写b)可以指定初始化bean的名字13.@Scope14.@PostConstruct = init-method; @PreDestroy = destroy-method;什么是AOP1.面向切面编程Aspect-Oriented-Programminga)是对面向对象的思维方式的有力补充2.Spring_1400_AOP_Introduction3.好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a)Filterb)Struts2的interceptor4.概念:a)JoinPointb)PointCutc)Aspect(切面)d)Advicee)Targetf)WeaveSpring AOP配置与应用1.两种方式:a)使用Annotationb)使用xml2.Annotationa)加上对应的xsd文件spring-aop.xsdb)beans.xml <aop:aspectj-autoproxy />c)此时就可以解析对应的Annotation了d)建立我们的拦截类e)用@Aspect注解这个类f)建立处理方法g)用@Before来注解方法h)写明白切入点(execution …….)i)让spring对我们的拦截器类进行管理@Component3.常见的Annotation:a)@Pointcutb)@Beforec)@AfterReturningd)@AfterThrowinge)@Afterf)@Around4.织入点语法a)void !voidb)参考文档(* ..)5.xml配置AOPa)把interceptor对象初始化b)<aop:configi.<aop:aspect …..1.<aop:pointcut2.<aop:beforeSpring整合Hibernate 1.Spring 指定datasourcea)参考文档,找dbcp.BasicDataSourcei.c3p0ii.dbcpiii.proxoolb)在DAO或者Service中注入dataSourcec)在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容2.Spring整合Hibernatea)<bean .. AnnotationSessionFactoryBean>i.<property dataSourceii.<annotatedClassesb)引入hibernate 系列jar包c)User上加Annotationd)UserDAO或者UserServie 注入SessionFactorye)jar包问题一个一个解决3.声明式的事务管理a)事务加在DAO层还是Service层?b)annotationi.加入annotation.xsdii.加入txManager beaniii.<tx:annotation-driveniv.在需要事务的方法上加:@Transactionalv.需要注意,使用SessionFactory.getCurrentSession 不要使用OpenSessionc)@Transactional详解i.什么时候rollback1.运行期异常,非运行期异常不会触发rollback2.必须uncheck (没有catch)3.不管什么异常,只要你catch了,spring就会放弃管理4.事务传播特性:propagation_required5.read_onlyd)xml(推荐,可以同时配置好多方法)i.<bean txmanagerii.<aop:config1.<aop:pointcut2.<aop:advisor pointcut-ref advice-refiii.<tx:advice: id transaction-manager =e)HibernateTemplate、HibernateCallback、HibernateDaoSupport(不重要)介绍i.设计模式:Template Methodii.Callback:回调/钩子函数iii.第一种:(建议)1.在spring中初始化HibernateTemplate,注入sessionFactory2.DAO里注入HibernateTemplate3.save写getHibernateTemplate.save();iv.第二种:1.从HibernateDaoSupport继承2.必须写在xml文件中,无法使用Annotation,因为set方法在父类中,而且是final的f)spring整合hibernate的时候使用packagesToScan属性,可以让spring自动扫描对应包下面的实体类Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2a)将这些所有的jar包保存到一个位置,使用的时候直接copy3.步骤a)加入jar包b)首先整合Spring + Hibernatei.建立对应的package1.dao / dao.impl / model / service / service.impl/ testii.建立对应的接口与类框架1.S2SH_01iii.建立spring的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy改)iv.建立数据库v.加入Hibernate注解1.在实体类上加相应注解@Entity @Id等2.在beans配置文件配置对应的实体类,使之受管vi.写dao service的实现vii.加入Spring注解1.在对应Service及DAO实现中加入@Component,让spring对其初始化2.在Service上加入@Transactional或者使用xml方式(此处建议后者,因为更简单)3.在DAO中注入sessionFactory4.在Service中注入DAO5.写DAO与Service的实现viii.写测试c)整合Struts2i.结合点:Struts2的Action由Spring产生ii.步骤:1.修改web.xml加入struts的filter2.再加入spring的listener,这样的话,webapp一旦启动,spring容器就初始化了3.规划struts的action和jsp展现4.加入struts.xmla)修改配置,由spring替代struts产生Action对象5.修改action配置a)把类名改为bean对象的名称,这个时候就可以使用首字母小写了b)@Scope(“prototype”)不要忘记iii.struts的读常量:1.struts-default.xml2.struts-plugin.xml3.struts.xml4.struts.properties5.web.xmliv.中文问题:1.Struts2.1.8已经修正,只需要改i18n.encoding = gbk2.使用spring的characterencoding3.需要严格注意filter的顺序4.需要加到Struts2的filter前面zyInitializationException1.OpenSessionInViewFilter2.需要严格顺序问题3.需要加到struts2的filter前面。